JSON nedir ve neden biçimlendirmek gerekir?
JSON (JavaScript Object Notation), verileri metin olarak taşımak için kullanılan en yaygın biçimdir. Web servislerinin yanıtları, uygulama ayar dosyaları, veritabanı dışa aktarımları, tarayıcı eklentileri ve mobil uygulamalar arasındaki iletişim büyük ölçüde JSON ile yapılır. Makineler için tasarlandığından çoğu zaman tek satıra sıkıştırılmış, binlerce karakterlik bir yığın hâlinde karşınıza çıkar. Böyle bir metinde bir değeri bulmak, iç içe geçmiş yapıyı anlamak ya da eksik bir virgülü yakalamak neredeyse imkânsızdır. Biçimlendirme (güzelleştirme, pretty print) her anahtarı ayrı satıra alıp girintiyle hiyerarşiyi görünür kılar; sıkıştırma ise tersini yapıp gereksiz boşlukları atarak dosyayı küçültür. Bu sayfa her iki işi de, ayrıca hata bulmayı ve birkaç yararlı dönüşümü tarayıcınızda, hesap açmadan yapar.
Nasıl kullanılır?
- JSON metnini üstteki kutuya yapıştırın ya da bir
.jsondosyasını kutuya bırakın. Dosya içeriği kutuya yüklenir; isterseniz orada düzenlemeye devam edebilirsiniz. - Girinti seçeneğini belirleyin: 2 boşluk, 4 boşluk ya da sekme. Ekip olarak hangi stili kullanıyorsanız onu seçin; çoğu JavaScript projesi 2 boşluk, birçok API belgesi 4 boşluk kullanır.
- "Biçimlendir" ile okunur çıktıyı, "Sıkıştır" ile tek satırlık küçük çıktıyı alın. Yalnızca geçerli olup olmadığını merak ediyorsanız "Doğrula"ya basın.
- Metinde hata varsa kırmızı uyarıda satır ve sütun numarası ile ne yanlış olduğu yazar; imleç de otomatik olarak hatalı karakterin üzerine gelir. Düzeltip yeniden deneyin.
- Sonucu "Kopyala" ile panoya alın ya da "Dosya olarak indir" ile kaydedin. İndirilen dosyanın uzantısı çıktı türüne göre
.json,.csvveya.tsolur.
Hata mesajları: satır, sütun ve Türkçe açıklama
Çoğu doğrulayıcı "Unexpected token } in JSON at position 214" gibi bir cümleyle yetinir; 214. karakterin nerede olduğunu bulmak size kalır. Burada hata, bulunduğu satır ve sütunla birlikte söylenir ve ne yapmanız gerektiği de eklenir. En sık karşılaşılan sorunlar şunlardır: son öğeden sonra bırakılmış fazladan virgül, çift tırnak yerine tek tırnak kullanımı, tırnaksız anahtar, iki öğe arasında unutulmuş virgül, kapatılmamış süslü ya da köşeli parantez, undefined ve NaN gibi JSON'da bulunmayan değerler, yorum satırları ve metin içinde gerçek satır sonu. Her biri ayrı bir açıklamayla gösterilir; örneğin "Satır 4, sütun 1: Son özellikten sonra fazladan virgül var" gibi. İlk hata bulunduğunda imleç o konuma taşınır; büyük dosyada kaydırma da hatalı satıra ayarlanır. Bir hatayı düzeltince bir sonraki hata çıkabilir; geçerli olana kadar tekrarlamanız yeterlidir.
Ağaç görünümü ve anahtar sıralama
Çok katmanlı bir yanıtı satır satır okumak yerine "Ağaç görünümü"nü kullanabilirsiniz. Nesneler ve diziler katlanabilir düğümler hâlinde gösterilir, her düğümde kaç öğe içerdiği yazar; metinler, sayılar, mantıksal değerler ve null farklı renklerle ayrılır. Düğümler yalnızca açıldıklarında çizildiği ve çok büyük listeler 500'erlik parçalarla gösterildiği için binlerce kayıtlı dosyalar da tarayıcıyı dondurmadan gezilebilir. Klavyeyle de çalışır: bir düğüme gelip Enter ya da boşluk tuşuyla açıp kapatabilirsiniz.
"Anahtarları sırala" seçeneği tüm nesnelerdeki anahtarları (iç içe olanlar dâhil) alfabetik, Türkçe harf sırasına göre dizer. İki JSON dosyasını karşılaştırırken ya da sürüm kontrol sisteminde gereksiz farkları önlemek için çok işe yarar: aynı veriyi içeren iki dosya anahtar sıralaması farklı diye birbirinden farklı görünmez. Dizilerin sırası değiştirilmez, çünkü dizide sıra anlam taşır.
JSON'dan CSV'ye ve TypeScript'e dönüşüm
Kök değer nesnelerden oluşan bir diziyse ("JSON → CSV") her nesne bir satır, her anahtar bir sütun olur. Nesnelerin hepsinde aynı anahtarlar yoksa sütunlar birleştirilir ve eksik hücreler boş bırakılır. İç içe nesne ve diziler tek hücrede JSON metni olarak yazılır; bu sayede veri kaybolmaz. Türkçe Excel noktalı virgülü ayraç olarak beklediğinden ayracı seçebilirsiniz; indirilen CSV dosyası Türkçe karakterlerin bozulmaması için BOM'lu UTF-8 olarak kaydedilir. Güvenlik için "=", "+", "@" ile başlayan metin hücrelerinin başına kesme işareti konur; böylece Excel bunları formül sanıp çalıştırmaz.
"JSON → TypeScript" ise örnek verinizden bir arayüz (interface) taslağı üretir. Aynı yapıdaki dizi öğeleri tek arayüzde birleştirilir, bazı kayıtlarda olmayan alanlar isteğe bağlı (?) işaretlenir, iç içe nesneler kendi arayüzlerine ayrılır. Bu bir başlangıç taslağıdır: tek bir örnekten türlerin tamamı bilinemez, bu yüzden birleşik türleri ve isteğe bağlı alanları kendi servis belgelerinizle karşılaştırıp düzeltmeniz gerekir.
Büyük dosyalar ve sınırlar
Her şey tarayıcı belleğinde yapıldığı için sınır cihazınızın gücüne bağlıdır. Birkaç megabayta kadar dosyalar anında işlenir. 5 MB üstünde araç yavaşlayabileceğini hatırlatan bir uyarı gösterir; 50 MB üstünde ise belirgin bir uyarı verir. Bu boyutlarda metin kutusu da ağırlaşabilir; mümkünse bilgisayarda deneyin ya da dosyayı parçalayın. JSON.parse'ın kendisi hızlıdır; yavaşlık çoğunlukla çok büyük metni ekranda göstermekten gelir.
Neden Bilişim Ajans aracı?
- Veri yüklenmez. API yanıtları, müşteri kayıtları ya da erişim anahtarı içeren yapılandırma dosyaları sunucuya gönderilmez; işlem tarayıcınızda yapılır ve sayfa çevrimdışı da çalışır.
- Açıklayıcı hatalar. Satır, sütun ve ne yapmanız gerektiği Türkçe yazılır; imleç doğrudan hatalı yere gider.
- Tek yerde birkaç iş. Biçimlendirme, sıkıştırma, doğrulama, sıralama, ağaç, CSV ve TypeScript bir arada.
- Hesap yok, sınır yok. Kayıt, filigran ve günlük kota bulunmaz.
Sık sorulan sorular
JSON verim bir sunucuya gönderiliyor mu?
Hayır. Metin yalnızca tarayıcınızın belleğinde işlenir ve hiçbir ağ isteği yapılmaz. Gizli anahtar ya da kişisel veri içeren dosyaları da güvenle yapıştırabilirsiniz; sayfayı kapattığınızda hiçbir şey saklanmaz.
JSON'da neden yorum satırı yazamıyorum?
Resmî JSON standardında yorum yoktur. // veya /* */ gördüğünde ayrıştırıcılar hata verir. Açıklama eklemeniz gerekiyorsa ayrı bir "aciklama" anahtarı kullanın ya da yorumlara izin veren JSONC/JSON5 gibi türevleri destekleyen bir araç tercih edin; bu sayfa yalnızca standart JSON'u doğrular.
"Son öğeden sonra fazladan virgül" hatası ne demek?
Dizinin ya da nesnenin son öğesinden sonra virgül bırakmışsınız demektir; JavaScript koduna izin verilse de JSON'da yasaktır. Virgülü silin, hata kaybolur.
Tek tırnaklı metin neden geçersiz?
JSON'da hem anahtarlar hem metin değerleri yalnızca çift tırnakla yazılabilir. 'ad' yerine "ad" kullanmalısınız. Python sözlüğünü ya da JavaScript nesnesini doğrudan kopyaladıysanız bu hata çok sık görülür.
Sıkıştırma veriyi bozar mı?
Hayır. Yalnızca anlamsız boşluklar ve satır sonları atılır; anahtarlar, değerler ve diziler olduğu gibi kalır. Biçimlendirme ve sıkıştırma birbirinin tersidir, istediğiniz kadar tekrarlayabilirsiniz. Çok büyük tam sayıların (2'nin 53. kuvvetini aşanlar) tarayıcıda yuvarlanabileceğini unutmayın; böyle kimlik numaralarını metin olarak yazmak daha güvenlidir.
CSV'ye dönüşüm neden hata veriyor?
CSV için kök değerin nesnelerden oluşan bir dizi olması gerekir, örneğin [{"ad":"Ali"},{"ad":"Ayşe"}]. Tek bir nesneyi ya da düz sayı listesini tabloya çeviremeyiz; tek nesneyse köşeli parantezle bir diziye alın.
Hata satırını nasıl hızlı bulurum?
Hata mesajındaki satır ve sütun numarasını okuyun; imleç zaten o karakteri seçili gösterir. Çoğu zaman asıl sorun bir önceki satırdadır (unutulan virgül gibi), bu yüzden seçili yerin hemen öncesine de bakın.
Dosyayı kaydederken Türkçe karakterler bozulur mu?
Hayır, dosyalar UTF-8 olarak kaydedilir. CSV dosyasına Excel için BOM eklendiğinden ş, ğ, ı gibi harfler Excel'de de doğru görünür.
İlgili araçlar
Veri entegrasyonu, API geliştirme ya da kuruma özel yazılım ihtiyacınız varsa Bilişim Ajans ekibi yardımcı olur.