JSON metniyle çalışmak genellikle üç farklı göreve indirgenir: onu okunabilir hale getirmek, kompakt hale getirmek veya geçerli olup olmadığını kontrol etmek. Bunlar genellikle tek bir araçta birleştirilse de üç ayrı işlemdir.
Biçimlendirme (pretty-print)
Biçimlendirme, JSON'un yapısının göz ile kolayca okunabilmesi için girinti, satır sonu ve noktalama işaretleri etrafına boşluk ekler. Bu tamamen kozmetik bir değişikliktir — verileri değil, yalnızca nasıl görüntülendiğini etkiler.
Küçültme (minify)
Küçültme, gereksiz tüm boşlukları, satır sonlarını ve girintileri kaldırarak yalnızca gerçekten gerekli karakterleri bırakır. Bu, ağ üzerinden veri iletirken veya büyük hacimli verileri depolarken önemli olan dosya boyutunu azaltır — verinin yapısının kendisi değişmez.
Doğrulama
Doğrulama, metnin sözdizimsel olarak geçerli JSON olup olmadığını kontrol eder. Yakaladığı tipik hatalar: kapanış parantezinden önce fazladan bir virgül, çift tırnak yerine tek tırnak, tırnaksız nesne anahtarları, yorumlar (JSON standardında hiç bulunmaz) veya kapatılmamış parantezler. Geçerli JSON, biçimlendirme veya küçültmenin çalışabilmesi için bir ön koşuldur.
Ne zaman hangisi gerekli
- Biçimlendirme — API yanıtlarını hata ayıklarken veya yapılandırma dosyalarını elle düzenlerken.
- Küçültme — veriyi ağ üzerinden göndermeden veya üretim koduna gömmeden önce.
- Doğrulama — bir ayrıştırıcının neden bir JSON dosyasını okumayı reddettiğini teşhis ederken.
"Nokta i" sorunu bir kod olarak JSON anahtarlarını nasıl bozar
Türkçede dört ayrı "i" harfi vardır: büyük noktalı İ, küçük noktalı i, büyük noktasız I ve küçük noktasız ı. Bir program Türkçe sistem yerel ayarıyla çalışırken "id".toUpperCase() gibi bir dönüşüm çağırırsa, sonuç beklenen "ID" değil "İD" olur — çünkü küçük i'nin Türkçedeki büyük hâli noktalı İ'dir. JSON anahtarlarını büyük/küçük harfe duyarsız şekilde karşılaştıran veya normalize eden bir kod, sunucu Türkçe yerel ayarla çalıştığında sessizce anahtar eşleştirmeyi kaçırabilir — bu, "Turkish-I problem" olarak bilinen, dünya çapında belgelenmiş klasik bir yerelleştirme hatasıdır.
JSON5 ve JSONC gerçek JSON değildir
Bazı ortamlar (örneğin VS Code veya TypeScript yapılandırma dosyaları) sondaki virgüllere, yorumlara ve tırnaksız anahtarlara izin verir — bu, JSON5 veya JSONC uzantısıdır, standart JSON (RFC 8259) değildir. Katı JSON'a göre yapılandırılmış bir doğrulayıcı, düzenleyici bu dosyayı "anlasa" bile böyle bir dosyayı doğru şekilde reddeder.