JSON biçimlendirici
JSON'u biçimlendirin veya küçültün ve geçersiz girdinin tam olarak nerede bozulduğunu görün.
Çıktı burada görünecek
Bu JSON biçimlendirici ne yapar
JSON (JavaScript Object Notation), yapılandırılmış veriyi programlar arasında taşımak için en yaygın biçimdir — API yanıtları, yapılandırma dosyaları, günlük satırları ve daha fazlası. Kompakt olacak şekilde tasarlanmıştır; bu da nesneler birkaç düzey iç içe geçtiğinde ya da tek satırda geldiğinde onu okumayı zorlaştırır. Bu araç, yapıştırdığınız herhangi bir JSON'u iki şekilde yeniden yazar: güzelleştirilmiş, yapının bir bakışta belli olması için tutarlı girintiyle; ya da küçültülmüş, tel üzerinden göndermek için olabildiğince küçük olsun diye her isteğe bağlı boşluktan arındırılmış.
Ayrıca biçimlendirirken doğrular. Metni yeniden serileştirmeden önce ayrıştırdığı için, geçersiz JSON asla yanıltıcı çıktı üretmez — bunun yerine ayrıştırmanın başarısız olduğu tam satır ve sütunu alırsınız; böylece doğrudan soruna atlayabilirsiniz.
Güzelleştirme ve küçültme — hangisi ne zaman
İki mod karşıt amaçlara hizmet eder ve çoğu iş akışı ikisini de farklı aşamalarda kullanır:
- Okurken ya da hata ayıklarken güzelleştirin — bir API yanıtını incelerken, iki yükü karşılaştırırken ya da bir pull request'te bir yapılandırma dosyasını gözden geçirirken. Girinti, bir metin duvarını göz atılabilir bir ağaca dönüştürür.
- Gönderirken küçültün — JSON'u HTML'e gömerken, bir çerezde ya da önbellekte saklarken ya da her baytın önemli olduğu bir istek gövdesinde gönderirken. Küçültülmüş JSON, yalnızca boşluksuz, bayt bayt aynı veridir.
Girinti seçici (2 boşluk, 4 boşluk ya da bir sekme) yalnızca güzelleştirilmiş çıktıyı etkiler. İki boşluk, JavaScript ve web araçlarında en yaygın kuraldır; dört boşluk ya da sekmeler onları tercih eden ekiplere uygundur. Hangisini seçerseniz seçin, sonuç yine de geçerli JSON'dur — girinti tümüyle görseldir.
Doğrulama hatalarını okuma
JSON geçersiz olduğunda araç, belirsiz bir «geçersiz» mesajı yerine ilk sorunun satır ve sütununu bildirir. Motor hata mesajları tarayıcılar arasında farklıdır ve çoğu zaman bir konum içermez; bu yüzden konum bağımsız olarak hesaplanır ve aramaya başlamak için makul bir noktayı gösterir. İlk hatayı düzeltip yeniden kontrol edin — tek bir başıboş karakter çoğu zaman birkaç görünür soruna dönüşür.
Yaygın JSON hataları
JSON, benzediği JavaScript nesne değişmezlerinden daha katıdır. İnsanları en sık takan hatalar şunlardır:
- Sondaki virgüller: bir nesne ya da dizideki son öğeden sonra bir virgül JavaScript'te geçerlidir, ama JSON'da değildir.
- Tek tırnaklar: JSON dizeleri ve anahtarları çift tırnak kullanmalıdır. 'value' geçersizdir; "value" doğrudur.
- Tırnaksız anahtarlar: her nesne anahtarı tırnaklı bir dize olmalıdır; bu yüzden { name: "x" }, { "name": "x" } olmalıdır.
- Yorumlar: JSON'un yorum söz dizimi yoktur. // ve /* */ bir ayrıştırma hatasına neden olur.
- Özel sayılar: NaN, Infinity ve -Infinity geçerli JSON sayıları değildir.
- Yanlış tırnak karakterleri: bir kelime işlemciden yapıştırılan «akıllı tırnaklar» tırnak gibi görünür, ama farklı karakterlerdir ve ayrıştırılmaz.
Sıkça sorulan sorular
- JSON'um bir sunucuya gönderiliyor mu?
- Hayır. Ayrıştırma, doğrulama ve biçimlendirme tümüyle tarayıcınızda JavaScript kullanılarak gerçekleşir. Yapıştırdığınız hiçbir şey yüklenmez, saklanmaz ya da kaydedilmez; bu yüzden hassas yüklerle kullanmak güvenlidir.
- Biçimlendirme verimi değiştirir mi?
- Hayır. Güzelleştirme ve küçültme yalnızca belirteçler arasındaki boşluğu ekler ya da kaldırır. Anahtarlar, değerler, sayılar ve yapı aynıdır — yalnızca düzen değişir.
- Sayılarımı neden yeniden düzenliyor ya da yeniden biçimlendiriyor?
- Araç, JSON'u gerçek değerlere ayrıştırır ve onları geri serileştirir; bu yüzden sayılar standart biçimlerine normalleştirilir (örneğin 1e3, 1000 olur). Değer değişmez; yalnızca metinsel gösterimi standarttır.
- Çok büyük JSON dosyalarını işleyebilir mi?
- Büyük yükleri işleyebilir, ama her şey tarayıcıda çalıştığı için aşırı büyük dosyalar (onlarca megabayt) cihazınıza bağlı olarak yavaş olabilir ya da bellek sınırlarına ulaşabilir.
- Nesne anahtarlarının sırasını korur mu?
- Evet. Anahtar sırası girdinizde göründüğü gibi tam olarak korunur — araç anahtarları sıralamaz.
- JSON ile bir JavaScript nesnesi arasındaki fark nedir?
- JSON, veri değişimi için bir metin biçimidir; bir JavaScript nesnesi ise bellekteki bir değerdir. JSON daha katıdır: çift tırnaklı anahtarlar ve dizeler gerektirir, sondaki virgülleri ve yorumları yasaklar ve yalnızca sabit bir değer türü kümesine izin verir (dizeler, sayılar, mantıksal değerler, null, diziler ve nesneler).
- JSON5 ya da JSONC'yi (yorumlu JSON) biçimlendirebilir miyim?
- Hayır. Bu araç katı, standart JSON'u doğrular. JSON5 ve JSONC, JSON belirtiminin parçası olmayan yorumlar ve başka kolaylıklar ekler; bu yüzden hata olarak bildirilirler.