JSON nasıl doğrulanır?
- JSON'u yapıştırın veya bir dosya açın. Doğrulama siz yazarken otomatik olarak çalışır.
- İstatistiklerle birlikte görünen yeşil “Geçerli JSON” mesajı belgenin doğru olduğu anlamına gelir. Aksi halde hatayı okuyun: hata mesajı satırı, sütunu ve orada neyin beklendiğini belirtir.
- Vurgulanan satırı düzeltin veya Onar düğmesine tıklayın, ardından sonucu kolay okunur hale getirmek için Formatla düğmesini kullanın.
Sık karşılaşılan JSON hataları ve çözümleri
| Hata | Örnek | Çözüm |
|---|---|---|
| Sondaki virgül | [1, 2, ] | ] veya } öncesindeki virgülü kaldırın |
| Tek tırnak | {'name': 'Ada'} | Çift tırnak kullanın: {"name": "Ada"} |
| Tırnaksız anahtar | {name: "Ada"} | Anahtarı tırnak içine alın: {"name": "Ada"} |
| Eksik virgül | {"a": 1 "b": 2} | Özellikler arasına virgül ekleyin |
| Yorum | // settings | JSON'da yorum yoktur – yorumları kaldırın |
| String içinde satır sonu | "line 1⏎line 2" | Gerçek satır sonu yerine \n yazın |
| Geçersiz değer | undefined, NaN, True | null, bir sayı, true veya false kullanın |
| Baştaki sıfır | {"zip": 01234} | 1234 yazın veya metin olarak tutun: "01234" |
| Eksik parantez | {"a": [1, 2} | Her [ parantezini ] ile, her { parantezini } ile kapatın |
Geçerli JSON'un kuralları
JSON, RFC 8259 standardında tanımlanmıştır. Geçerli bir belge birkaç katı kurala uyar:
- Tam olarak bir üst düzey değer içerir; bu genellikle bir nesne
{}ya da dizi[]olur. - Nesne üyeleri virgülle ayrılmış
"key": valueçiftleridir; anahtarlar her zaman çift tırnak içinde yazılan string'lerdir. - String'ler çift tırnak kullanır; içlerinde yalnızca
\" \\ \/ \b \f \n \r \tve\uXXXXkaçış dizilerine izin verilir. - Sayılar ondalık sistemdedir: baştaki sıfırlar,
+işareti, onaltılık (hex) gösterim,NaNveyaInfinitykullanılamaz. true,falsevenullküçük harfle yazılır.- Token'lar arasında boşluk, sekme ve satır sonlarına izin verilir, ancak yorumlara izin verilmez.
Komut satırında JSON doğrulama
- Python:
python -m json.tool file.jsonilk hatanın satırını ve sütununu yazdırır. - jq:
jq empty file.jsondosya geçersizse bir hata mesajıyla sonlanır. - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
Sıkça sorulan sorular
JSON validator ile JSON linter arasındaki fark nedir?
Validator (doğrulayıcı), metnin JSON sözdizimine uyup uymadığını kontrol eder. Linter ise genellikle tutarlı bir stil de dayatır. Bu JSON kontrol aracı RFC 8259 standardına göre katı biçimde doğrulama yapar ve Formatla ile size tutarlı bir girinti de sağlar.
JSON Schema'ya göre doğrulama yapabilir mi?
Bu sayfa sözdizimini kontrol eder. Verilerinizin beklenen yapısını tanımlamak için JSON Schema Oluşturucu ile örnek bir belgeden şema oluşturun.
JSON'um burada geçerli, peki başka bir program neden reddediyor?
Programlar çoğu zaman belirli bir yapı (belirli anahtarlar veya türler), bayt sırası işareti (BOM) olmadan UTF-8 gibi belirli bir kodlama ya da sınırlı bir aralıkta sayılar bekler. Sözdizimi açısından geçerli bir JSON yine de bu tür uygulama kurallarını ihlal edebilir.
Yorum içeren JSON (JSONC) geçerli mi?
Hayır. Standart JSON yorumlara izin vermez. Bazı editörler ayar dosyalarında (JSONC) yorumları kabul eder, ancak API'ler ve JSON.parse kabul etmez. Onar yorumları sizin için kaldırır.