JSON Biçimlendirici ve Doğrulayıcı
Ham, küçültülmüş veya dağınık JSON'u yapıştırın; anında doğrulayın ve istediğiniz girintiyle okunabilir biçimde yazdırın. Araç ayrıca herhangi bir söz dizimi hatasının tam satır ve sütununu gösterir.
JSON'ınızı Biçimlendirin ve Doğrulayın
JSON Biçimlendirici Formülü
Burada:
- \(raw\) — girdi alanına yapıştırılan JSON metni
- \(indent\) — seçilen girinti: 0 (kompakt), 2 boşluk, 4 boşluk veya sekme karakteri
- \(output\) — okunabilir biçimde yazdırılmış sonuç
- \(minified\) — tüm gereksiz boşlukların kaldırıldığı aynı veri
Araç önce ham metni ayrıştırarak söz dizimsel olarak geçerli JSON olduğunu doğrular, ardından yeniden serileştirir. Ayrıştırma başarısız olursa ayrıştırıcı hatanın karakter konumunu bildirir; bu konum satır ve sütun numarasına dönüştürülür, böylece sorunu hemen bulabilirsiniz.
JSON Biçimlendirici – Hesaplama Örneği
Örnek: varsayılan değeri Ham JSON alanına yapıştırın ve Girinti ayarını “2 boşluk” olarak bırakın:
\(raw = \{"name":"WPCalc","version":2,"free":true,"features":["calculators","converters","tools"],"site":\{"url":"https://wpcalc.com","languages":["en"]\}\}\)
Sonuç: girdi başarıyla ayrıştırılır — Doğrulama Durumu “✓ Geçerli JSON — en üst düzey değer bir nesnedir” gösterir ve Biçimlendirilmiş JSON çıktısı şöyle olur:
\(\{\)
\("name": "WPCalc",\)
\("version": 2,\)
\("free": true,\)
\("features": [\)
\("calculators",\)
\("converters",\)
\("tools"\)
\(],\)
\("site": \{\)
\("url": "https://wpcalc.com",\)
\("languages": [\)
\("en"\)
\(]\)
\(\}\)
\(\}\)
Küçültülmüş JSON alanı aynı veriyi tek satırda gösterir: {"name":"WPCalc","version":2,"free":true,"features":["calculators","converters","tools"],"site":{"url":"https://wpcalc.com","languages":["en"]}}
Hesaplayıcı nasıl kullanılır
- Ham, küçültülmüş veya dağınık JSON'unuzu Ham JSON metin alanına yapıştırın.
- Biçimlendirilmiş çıktı için Girinti stilini seçin: Küçültülmüş (kompakt), 2 boşluk, 4 boşluk veya Sekme.
- Doğrulama Durumu'nu okuyun. JSON geçerliyse en üst düzey veri türünü, dizilerin öğe sayısını ve girdinin karakter uzunluğunu görürsünüz.
- İhtiyacınız olan sonucu Biçimlendirilmiş JSON veya Küçültülmüş JSON alanından kopyalayın.
- JSON geçersizse durum satırı, ayrıştırıcının hata iletisini sorunlu karakterin satırı ve sütunuyla birlikte ve çevresindeki metnin kısa bir bölümünü gösterir; böylece söz dizimi hatasını doğrudan düzeltebilirsiniz.
JSON nedir ve biçimlendirme neden önemlidir
JSON (JavaScript Object Notation), yapılandırılmış verileri depolamak ve paylaşmak için kullanılan hafif bir metin biçimidir. REST API'leri, yapılandırma dosyaları, günlük kayıtları ve veri hatlarının standart veri biçimidir. Bir JSON belgesi altı değer türünden oluşur: nesneler (süslü parantez içinde anahtar–değer çiftleri), diziler (köşeli parantez içinde sıralı listeler), dizeler, sayılar, mantıksal değerler ve null.
JSON bir ağ üzerinden aktarılırken veya bir program tarafından üretilirken genellikle küçültülmüştür: bant genişliğinden tasarruf için tüm satır sonları ve gereksiz boşluklar kaldırılır. Küçültülmüş bir dosya verimlidir ama insan gözü için neredeyse okunamazdır — binlerce karakterlik tek uzun satır, yapıyı incelemeyi veya yanlış yerleştirilmiş bir parantezi bulmayı zorlaştırır. Güzel yazdırma (her iç içe geçme düzeyine girinti ve satır sonu ekleme) bunu tersine çevirerek her anahtara ve değere kendi satırını verir ve iç içe geçme hiyerarşisini görsel olarak ortaya çıkarır.
Doğrulama, aracın diğer yarısıdır. Katı anlamda JSON'un “formülleri” yoktur — ya ayrıştırılır ya ayrıştırılmaz. Sık yapılan hatalar arasında kapanan parantezden önceki fazladan virgül, çift tırnak yerine tek tırnak, tırnaksız anahtarlar, açıklamalar (JSON standardının parçası değildir) veya bir dizenin içinde kaçış karakteri kullanılmamış tırnak bulunur. Bu hesaplayıcı, belirsiz bir sunucu hatası vermek yerine ayrıştırmanın durduğu tam satır ve sütunu gösterir; bu da sinir bozucu bir hata ayıklama oturumunu tek satırlık bir düzeltmeye dönüştürür.
Çıktı ayrıca belgenizin en üst düzey türünü söyler. Bir nesne beklerken ayrıştırıcı bir dizi (veya düz bir dize ya da sayı) bildirirse, veri şeklinin varsayımınızdan farklı olduğunu hemen anlarsınız — bu, üçüncü taraf API'leri entegre ederken sık görülen bir hata kaynağıdır.
İpuçları, varsayımlar ve sınırlamalar
- Fazladan virgüller ve açıklamalar reddedilir. Ayrıştırıcı JSON spesifikasyonunu (RFC 8259) izler. JavaScript nesne değişmezlerinin aksine JSON, fazladan virgüllere, açıklamalara veya tırnaksız anahtarlara izin vermez.
- Anahtarlar özgün sırasını korur. Biçimlendirme anahtarları sıralamaz; çıktı, anahtarların girdinizde göründüğü sırayı korur.
- Sayılar normalize edilir. Yeniden serileştirme sayı gösterimini yeniden yazabilir (örneğin
1.501.5olur,1e31000olur). Çift duyarlıklı kayan noktalı sayı olarak işlendikleri için çok büyük tam sayılar duyarlık kaybedebilir. - Yinelenen anahtarlar sessizce birleştirilir. Aynı anahtar bir nesnede iki kez geçiyorsa çıktıda yalnızca son değer kalır.
- Dağıtıma çıkmadan önce “Küçültülmüş” seçin. Üretim kullanımı için Küçültülmüş JSON çıktısını kopyalayın — daha küçük dosyalar daha hızlı yüklenir ve API'lerin ve derleme araçlarının genellikle beklediği budur. Geliştirme ve inceleme sırasında 2 boşluk veya 4 boşluk görünümünü kullanın.
İlgili araçlar
JSON çoğu zaman başka biçimlerin içine gömülür veya kodlanır. JSON'unuz bir kodlama ile sarılmış olarak geldiyse önce Base64 Çözücü'yü veya URL Çözücü'yü deneyin, ardından çözülen metni buraya yapıştırın. Küçültmenin gerçekte ne kadar boşluk kazandırdığını görmek için çıktıyı Karakter Sayacı'ndan geçirin; betiklerle de çalışıyorsanız JavaScript Sıkıştırma aracı JS dosyalarınızı aynı şekilde küçültabilir.
Sıkça Sorulan Sorular
Bir çevrimiçi araç olmadan JSON'u nasıl doğrulayabilir veya biçimlendirebilirim?
Komut satırında doğrulamak ve okunabilir biçimde yazdırmak için python -m json.tool file.json komutunu, jq kuruluysa jq . file.json komutunu çalıştırın. JavaScript'te karşılığı, doğrulama için JSON.parse(text), biçimlendirme için JSON.stringify(obj, null, 2) işlevidir. Bunların tümü aynı katı RFC 8259 dil bilgisini izler; bu nedenle aynı hataları reddederler: fazladan virgüller, tek tırnaklı dizeler ve açıklamalar.
JSON ile JavaScript nesne değişmezi arasındaki fark nedir?
JSON katı bir metin biçimidir; JavaScript nesne değişmezi ise koddur. JSON, anahtarların çift tırnak içine alınmasını gerektirir, yalnızca çift tırnaklı dizelere izin verir ve fazladan virgülleri, açıklamaları ile new Date() gibi ifadeleri veya tırnaksız undefined değerini yasaklar. {name: "WPCalc",} gibi bir değişmez geçerli JavaScript'tir ama geçersiz JSON'dur. Tereddüt ettiğinizde, metnin ayrıştırılacağını varsaymadan önce onu bir doğrulayıcıdan geçirin.
JSON doğru göründüğü halde neden başarısız oluyor?
Önce görünmez karakterlere bakın: dosyanın başındaki bayt sırası işareti (BOM), bir web sayfasından kopyalanan bölünemez boşluklar veya bir kelime işlemciden yapıştırılan akıllı tırnak işaretleri (“ ”) ayrıştırmayı bozar. Diğer sık nedenler bir dizenin içinde kaçış yapılmamış çift tırnak (\" yazın), dizenin içinde gerçek bir satır sonu (\n yazın) ve } veya ] öncesindeki fazladan virgüldür. Satır/sütun raporu hangisi olduğunu tam olarak gösterir.
Bir JSON belgesinin en üst düzeyi nesne dışında bir şey olabilir mi?
Evet. JSON spesifikasyonu en üst düzeyde tek bir değere izin verir: nesne, dizi, dize, sayı, mantıksal değer veya null. Çoğu API nesne veya dizi gönderse de, "hello" gibi yalın bir dize veya 42 sayısı tamamen geçerli bir JSON'dur. Bir doğrulayıcı en üst düzey değerinizin bir dize olduğunu söylerse ve veriyi alan taraf bunu bekliyorsa, verinizi bir nesneye veya diziye sarın.
JSON5 ve JSONC nedir ve neden burada başarısız oluyor?
JSON5, tırnaksız anahtarlar, tek tırnaklar, fazladan virgüller ve açıklamalar gibi kolaylıklar ekler; JSONC ise açıklamalı JSON'dur ve VS Code gibi düzenleyiciler tarafından ayar dosyalarında kullanılır. İkisi de JSON'un üst kümeleridir ama hiçbiri standart JSON değildir; bu nedenle katı bir RFC 8259 ayrıştırıcısı bunları reddeder. JSONC veya JSON5 dosyanız varsa, standart araçlarla ve API'lerle kullanmadan önce açıklamaları kaldırın ve söz dizimini düzeltin.
Küçültme JSON dosya boyutunu gerçekte ne kadar azaltır?
Bu, okunabilir biçimli sürümün ne kadar girintilendiğine bağlıdır. 4 boşlukluk girintiden küçültülmüş hale geçiş genellikle boyutu %30–60 azaltır; çünkü biçimlendirildiğinde her anahtar, parantez ve virgül satır sonları ile dolgu boşlukları kazanır. Küçük veri yüklerinde kazanç ihmal edilebilir düzeydedir; birçok kullanıcıya sunulan büyük API yanıtlarında ve yapılandırma paketlerinde ise fark birikir. Öncesi ve sonrası boyutları karşılaştırmak için çıktıyı bir karakter sayacından geçirin.
JSON'u biçimlendirmek veya yeniden serileştirmek verilerimi değiştirir mi?
Yapı ve anahtar sırası aynı kalır ama sayılar yeniden yazılabilir: 1.50 1.5 olur, 1e3 1000 olur ve yaklaşık 15 anlamlı basamaktan büyük tam sayılar, çift duyarlıklı kayan noktalı sayı olarak depolandıkları için duyarlık kaybedebilir. Bir nesnedeki yinelenen anahtarlar da son değere daraltılır. Sayısal kesinlik önemliyse — örneğin büyük kimlik değerlerinde — özgün metni koruyun.