JSON formatter, doğrulayıcı ve küçültücü
JSON formatter ile JSON’unuzu yapıştırın – araç anında kontrol eder, hatanın tam yerini açıklamasıyla gösterir ve sonucu kopyalamaya hazır biçimde, girintili veya küçültülmüş olarak verir. Hiçbir şey yüklenmez.
Nasıl hesaplanır?
Araç neyi kontrol eder?
Kurallar, JSON’un internet standardı olan RFC 8259’dan gelir (ECMA-404 ile eşdeğer). Araç metninizi kendi ayrıştırıcısıyla karakter karakter okur ve ilk kural ihlalinde durur. Mesaj satır ve sütunu verir, yeri ^ işaretiyle gösterir ve neyin yanlış olduğunu açıklar – her tarayıcıda aynı şekilde; çünkü yerleşik JSON.parse mesajları tarayıcıdan tarayıcıya değişir ve çoğu zaman pek bir şey söylemez (“Unexpected token”).
En sık görülen JSON hataları
- Son öğeden sonra fazladan virgül:
{"a": 1,}– JavaScript’te geçerli, JSON’da hatalı. - Tek tırnak veya tırnaksız anahtar:
{'a': 1},{a: 1}– doğrusu{"a": 1}. - Yorumlar (
//,/* */) JSON’da yoktur. - JavaScript veya Python değerleri:
undefined,NaN,Infinity,True,None– yalnızcatrue,falsevenullgeçerlidir. - Sayılar: başta sıfır yok (
012),+1yok,.5veya5.yok, onaltılık gösterim (0x1F) yok. Ondalık ayırıcı her zaman noktadır, virgül değil. - Metinler (string): satır sonu veya sekme
\nya da\tolarak, tek ters eğik çizgi\\olarak yazılır (Windows yollarında tipik hata). - Görünmez karakterler: Word’den veya bir web sayfasından kopyalanan bölünmez boşluk (U+00A0) JSON’da boşluk sayılmaz.
Biçimlendirme, küçültme, sıralama
Çıktı, doğrulanmış içerikten yeniden oluşturulur: Biçimlendir her seviyeyi 2 veya 4 boşlukla ya da sekmeyle girintiler, Küçült gereksiz tüm boşlukları siler (en küçük dosya). Sayılar ve metinler tam yazıldığı gibi kalır – JSON.parse + JSON.stringify’dan farklı olarak 1.0, 1’e dönüşmez ve 12345678901234567890 yuvarlanmaz. Sıralama, anahtarları JSON Canonicalization Scheme’deki (RFC 8785) gibi Unicode kod birimlerine göre dizer: büyük harfler küçüklerden önce, ç, ğ, ı, ö, ş, ü gibi harfler ise ikisinden de sonra gelir.
Hata değil, uyarı
Aynı nesnede tekrarlanan anahtarlar RFC 8259’a göre yasak değildir ama güvenilmezdir: çoğu program yalnızca son değeri tutar. Baştaki bayt sırası işareti (BOM) ayrıştırıcı tarafından yok sayılabilir – araç da bunu yapar ve size bildirir.
Sınırlar
Araç anlamı değil sözdizimini kontrol eder: zorunlu alanların eksik olup olmadığı veya türlerin doğruluğu JSON Schema’nın işidir. Sütunlar Unicode karakterleri 1’den başlayarak sayar (sekme = 1 karakter); sekme genişliği 4 olan editörler daha yüksek bir sütun gösterir. Girdi 5 milyon karakter ve 1.000 iç içe seviye ile sınırlıdır.
Sıkça sorulan sorular
JSON’um bir yere yükleniyor veya kaydediliyor mu?
Hayır. Doğrulama ve biçimlendirme tamamen tarayıcınızda çalışır. Metin adres çubuğuna eklenmez ve kaydedilmez – bağlantıda yalnızca seçenekler (çıktı, girinti, sıralama) yer alır.
JSON hatası nedir, nasıl bulunur?
JSON hatası, metnin RFC 8259 kurallarına uymadığı anlamına gelir – örneğin eksik virgül, fazladan virgül veya tek tırnak. Metni buraya yapıştırın: araç ilk hatanın satırını ve sütununu açıklamasıyla gösterir, “Hataya git” imleci tam o noktaya taşır.
Yorumlar ve sondaki virgül neden yasak?
JSON, her programlama dilinin onu aynı şekilde okuyabilmesi için bilerek sade tutulmuştur. Yorumlar ve sondaki virgüller JSON5 veya JSONC gibi uzantılara aittir (örneğin VS Code ayarları) – düz JSON olarak bu dosyalar geçersizdir.
JSON’um geçerli ama program yine de kabul etmiyor – neden?
Genellikle içerik programın beklediğiyle uyuşmaz: zorunlu bir alan eksiktir, metin yerine sayı vardır veya yapı farklıdır. Bunu JSON Schema veya API belgeleri tanımlar. Tekrarlanan anahtar uyarısını da kontrol edin.
Satır ve sütun editörümle aynı mı?
Satır her zaman aynıdır. Sütunlar karakterleri 1’den başlayarak sayar; sekme bir karakterdir, emoji de öyle. Sekmeyi 4 sütun gösteren editörler daha yüksek bir sayı gösterir.
“Beklenmeyen son” hatasında sorunu nasıl bulurum?
Neredeyse her zaman kapanış } veya ] ya da bir tırnak işareti eksiktir. Mesaj, hiç kapanmayan parantezin satırını verir – önce o bloğun sonuna bakın.
Kaynaklar ve yasal dayanak
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
Güncelleme:
Benzer araçlar
- Online XML ve CSV doğrulamaXML doğrulama: XML’in iyi biçimli olup olmadığını ve CSV’nin RFC 4180’e uygunluğunu kontrol edin – satır ve sütunlu hatalar, ayırıcı tespiti, tablo önizlemesi.
- Regex testerRegex tester: JavaScript düzenli ifadelerini canlı test edin – eşleşmeler vurgulanır, gruplar tabloda, desenin her parçası açıklanır. Ücretsiz, veri yüklenmez.
- Base64 encode ve decodeBase64 ve Base64url’i doğru UTF-8 ile kodlayın ve çözün; URL encode/decode (yüzde kodlama) dahil. Anlaşılır hata mesajları, tamamen tarayıcınızda çalışır.
- Hash Hesaplama: SHA-256, SHA-512, SHA-1, MD5Metin veya dosya için SHA-256, SHA-384, SHA-512, SHA-1 ve MD5 hash hesaplama, checksum karşılaştırma – tarayıcınızda, yükleme yok, ücretsiz.
- UUID oluşturucu: UUID v4 ve v7 oluşturun ve doğrulayınOnline UUID oluşturun: sürüm 4 (rastgele) veya sürüm 7 (zamana göre sıralı), tek seferde 1.000 adede kadar. UUID doğrulayın; sürüm, varyant ve zamanı görün.
- Unix zaman damgası dönüştürücüUnix zaman damgasını tarihe, tarihi zaman damgasına çevirin. Saniye, milisaniye, mikro- ve nanosaniye otomatik algılanır; UTC, yerel saat ve ISO 8601.