UltKit

JSON Biçimlendirici ve Doğrulayıcı

JSON'u yapıştırın; okunaklı biçimde girintileyin, küçültün ya da anahtarlarını sıralayın. Ayrıştırılamıyorsa biçimlendirici, ayrıştırıcının durduğu satırı ve sütunu sorunun altında bir işaretçiyle gösterir; böylece 3.000 satırlık bir yanıttaki eksik virgülü saniyeler içinde bulursunuz.

Çıktı

0 karakter · 0 kelime · 0 satır

0 karakter · 0 kelime · 0 satır

Tamamen bu tarayıcı sekmesinde çalışır. Metniniz asla yüklenmez veya saklanmaz.

JSON değer türleri

RFC 8259 tam olarak bu değerlere izin verir. Nesneler ve diziler iç içe geçer; geri kalan her şey yaprak değerdir.

TürÖrnekKural
Nesne{"id": 7, "tags": ["a"]}Anahtarlar çift tırnaklı dize olmalıdır; üyeler virgülle ayrılır, sondaki virgül olmaz.
Dizi[1, "two", null]Her türden değerin sıralı listesi; karışık türlere izin verilir.
Dize"caf\u00e9 \"quoted\""Yalnızca çift tırnak; kontrol karakterleri kaçırılmalıdır; \u kaçışları dört hex basamağı kullanır.
Sayı-12.5e3Yalnızca ondalık: isteğe bağlı eksi, baştaki sıfır yok, isteğe bağlı kesir ve üs. NaN veya Infinity yok.
true, false ve nulltrueKüçük harf, tırnaksız.

Ayrıştırıcının reddettikleri

Aşağıdaki her girdi, bu sayfa oluşturulurken biçimlendiricinin kullandığı JSON.parse işlevine verildi.

GirdiSorunJSON.parse
{"a": 1,}Sondaki virgülReddedildi
{'a': 1}Tek tırnaklı dizelerReddedildi
{"a": 1 /* note */}YorumlarReddedildi
{a: 1}Tırnaksız anahtarReddedildi
{"n": NaN}NaN bir JSON sayısı değildirReddedildi
{"n": 012}Baştaki sıfırReddedildi
{"n": 0x1F}Onaltılık sayıReddedildi

JSON dizelerinde kaçışlar

KarakterJSON'da yazılışı
Çift tırnak"\""
Ters eğik çizgi"\\"
Satır başı beslemesi (LF)"\n"
Sekme"\t"
Satır başı (CR)"\r"
Kontrol karakteri U+0001"\u0001"
Eğik çizgi (kaçış isteğe bağlı)"/"
ASCII dışı harf (kaçış gerekmez)"é"

Geçerli bir JSON belgesinin uyduğu kurallar

JSON, RFC 8259 ile tanımlanır (özü bakımından ECMA-404 ile aynıdır). Bir belge tek bir değerden oluşur: nesne, dizi, metin, sayı, true, false veya null. Nesne anahtarları her zaman çift tırnak içinde metindir. Metinlerde yalnızca çift tırnak kullanılır; tırnak işareti, ters eğik çizgi ve U+0020 altındaki tüm kontrol karakterleri kaçışlanmalıdır. Bu yüzden metin içindeki sekme ve satır sonları \t ve \n olarak yazılır. RFC 8259 ayrıca sistemler arasında aktarılan JSON için UTF-8 kullanılmasını şart koşar.

Sayılar ondalık tabandadır: başta sıfır, onaltılık gösterim, NaN veya Infinity ve öne eklenmiş artı işareti olamaz. Biçimde yorum satırı ve sondaki virgül de yoktur. Gerçek hayattaki hataların çoğu bu son iki kuraldan kaynaklanır, çünkü JavaScript nesne sabitleri, JSON5 ve birçok yapılandırma dosyası ikisine de izin verir. Aşağıdaki başvuru tablosu, yaygın hataların her biri biçimlendiricinin kullandığı ayrıştırıcıya verilerek hazırlanmıştır.

Girintileme, küçültme, sıralama

Girintili biçimlendirme, yapının okunabilmesi için satır sonları ve girintiler ekler; JavaScript projelerinde en yaygın stil iki boşluktur, Python'un json.dumps(indent=4) çağrısında genellikle dört boşluk kullanılır, sekme ise her okuyucunun genişliği kendisinin seçmesini sağlar. Küçültme, anlamsız tüm boşlukları kaldırır; böylece API yükleri küçülür ve belge günlükler ya da ortam değişkenleri için tek satıra sığar.

Anahtarları sırala seçeneği, her nesnenin üyelerini özyinelemeli olarak alfabetik sıraya dizer. JSON nesneleri tanım gereği sırasızdır, bu yüzden sıralama anlamı değiştirmez ancak farklı sistemlerden gelen iki belgeyi karşılaştırmayı çok kolaylaştırır. Ayrıştırma sayıları JavaScript double değerlerine çevirir: bazı veritabanı kimlikleri gibi 2^53 (9.007.199.254.740.992) üzerindeki tam sayılar yeniden biçimlendirilirken hassasiyetini kaybeder, bu nedenle bunları metin olarak tutun.

JSON'dan diğer formatlara

Biçimlendirilmiş belge okuması daha kolaydır, ancak bazen başka bir biçime ihtiyaç duyarsınız. Nesne dizisi JSON'dan CSV'ye ile bir elektronik tabloya dönüşür, veri dönüştürücü ise dosyaların tamamını JSON, XML, YAML ve CSV arasında taşır.

Sık sorulan sorular

Biçimlendirici yorum satırı içeren JSON'umu neden reddediyor?
Standart JSON'da yorum sözdizimi yoktur; RFC 8259 bunu bilerek dışarıda bırakır. Yorumları kaldırın ya da dosyayı okuyan araç destekliyorsa JSONC veya JSON5 olarak kullanın.
JSON hatasındaki "Unexpected token" ne anlama gelir?
Ayrıştırıcı, o konumda bulunamayacak bir karakterle karşılaştı; örneğin tek tırnak, } öncesinde sondaki virgül veya tırnaksız anahtar. Gösterilen satır ve sütun bu karakteri işaret eder.
Anahtarları sıralamak verilerimi değiştirir mi?
Hayır. JSON'da nesne üyelerinin sırası bir anlam taşımaz, bu yüzden sıralanmış belge eşdeğerdir. Dizi sırası anlamlıdır ve asla değiştirilmez.
Biçimlendirmeden sonra uzun bir sayı neden değişti?
JavaScript sayıları 64 bit kayan noktalı olarak saklar; bunlar tam sayıları yalnızca 2^53'e kadar tam olarak temsil eder. Daha büyük kimlikler ayrıştırılırken yuvarlanır; her basamağı korumak için bunları metin olarak iletin.
Yapıştırmak yerine bir JSON dosyasını biçimlendirebilir miyim?
Dosyayı herhangi bir metin düzenleyicide açın, tümünü seçin ve buraya yapıştırın. Onlarca megabaytlık çok büyük dosyalar, metin alanı bunları işlerken sekmeyi yavaşlatabilir.