JSON Sözdizimi ve Yapısını Anlamak
JSON (JavaScript Object Notation), verileri depolamak ve farklı sistemler arasında aktarmak için kullanılan, insan tarafından kolayca okunabilen metin tabanlı bir veri biçimidir. Temel yapısı iki ana bileşene dayanır: anahtar-değer çiftlerinden oluşan nesneler (süslü parantez {} ile gösterilir) ve sıralı değer listelerinden oluşan diziler (köşeli parantez `` ile gösterilir).
JSON sözdiziminde kurallar oldukça katıdır. Nesne anahtarlarının her zaman çift tırnak içinde olması gerekir. Değerler ise dize (string), sayı, boolean (true/false), null, başka bir nesne veya dizi olabilir. Bu katı kurallar, verinin makineler tarafından hatasız bir şekilde çözümlenmesini sağlar. Ancak, elle yazılan veya sıkıştırılmış olan JSON verilerinde sözdizimi hataları sıkça meydana gelir.
JSON Doğrulamanın Önemi ve Hata Ayıklama
Veri alışverişi sırasında JSON verisinin geçerli olması kritik bir öneme sahiptir. Geçersiz bir JSON yapısı, API entegrasyonlarında, yapılandırma dosyalarının okunmasında veya veri tabanı işlemlerinde sistemlerin kilitlenmesine ya da hatalar vermesine yol açar. Bu nedenle, veriyi işleme almadan önce doğrulamak gerekir.
JSON Biçimlendirici, girdiğiniz veriyi anında analiz ederek geçerliliğini denetler. Eğer veri hatasız ise arayüzde Geçerli JSON uyarısı gösterilir. Veride bir hata bulunması durumunda ise Geçersiz JSON uyarısı ile birlikte hatanın tam konumu satır {line}, sütun {col} biçiminde belirtilir. Kullanıcılar Hataya git butonuna tıklayarak doğrudan hatanın bulunduğu satıra yönlenebilirler.
Araç, yaygın olarak karşılaşılan şu spesifik hataları tespit eder ve bildirir:
- Öğeler arasında virgül eksik (Öğeler arasında virgül eksik)
- Kapatan ayraçtan önce fazladan virgül var (Kapatan ayraçtan önce fazladan virgül var)
- Nesne anahtarları çift tırnak içine alınmalıdır (Nesne anahtarları çift tırnak içine alınmalıdır)
- Özellik adından sonra iki nokta eksik (Özellik adından sonra iki nokta eksik)
- Bir dizenin kapanış tırnağı eksik (Bir dizenin kapanış tırnağı eksik)
- JSON çok erken bitiyor — kesilmiş görünüyor (JSON çok erken bitiyor — kesilmiş görünüyor)
- Değer olması gereken yerde beklenmeyen karakter (Değer olması gereken yerde beklenmeyen karakter)
- Bu JSON işlenemeyecek kadar derin iç içe geçmiş (Bu JSON işlenemeyecek kadar derin iç içe geçmiş)
- Yinelenen anahtar {key} — biçimlendirmeden önce birini kaldırın (Yinelenen anahtar {key} — biçimlendirmeden önce birini kaldırın)
JSON Biçimlendirme ve Küçültme Teknikleri
Okunabilirliği düşük, tek satır halinde sıkıştırılmış JSON verilerini düzenlemek için biçimlendirme (formatting) işlemi uygulanır. Kullanıcılar, araç üzerindeki girinti seçeneğini belirleyerek veriyi hiyerarşik bir düzene kavuşturabilirler. Biçimlendirme işlemi tamamlandığında JSON biçimlendirildi. bildirimi görüntülenir.
Buna karşın, verilerin ağ üzerinden iletilmesi veya depolanması sırasında dosya boyutunu minimumda tutmak önemlidir. Küçültme (minify) işlemi, JSON verisindeki tüm gereksiz boşlukları, girintileri ve satır sonlarını kaldırarak veriyi tek bir satıra indirger. Bu işlem sonucunda JSON küçültüldü. mesajı verilir. Küçültme işlemi verinin anlamını veya yapısını değiştirmeden dosya boyutunu optimize eder.
Gelişmiş Ağaç Görünümü ile Veri Navigasyonu
Büyük ve karmaşık JSON dosyalarını metin formatında incelemek oldukça zordur. Araç, verileri görselleştirmek için Kod görünümünün yanı sıra etkileşimli bir Ağaç görünümü sunar. Ağaç görünümünde veriler hiyerarşik bir şema olarak listelenir.
Ağaç görünümünün özellikleri ve sınırları şunlardır:
- Arama ve Navigasyon: Anahtarlarda ve değerlerde ara kutusu kullanılarak anahtar ve değerler arasında arama yapılabilir. Eşleşme sayısı {current} / {total} veya sınır aşıldığında {current} / {total}+ şeklinde gösterilir. Eşleşme bulunamazsa Eşleşme yok uyarısı verilir. Arama sonuçları arasında geçiş yapmak için Önceki eşleşme ve Sonraki eşleşme butonları kullanılır.
- Düğüm Kontrolleri: Tüm yapıyı tek seferde açmak veya kapatmak için Tümünü genişlet ve Tümünü daralt butonları mevcuttur. Belirli düğümler {key} öğesini genişlet ve {key} öğesini daralt seçenekleriyle yönetilebilir. En üst düğüm kök etiketiyle temsil edilir.
- Büyük Veri Sınırları: Eğer JSON geçersiz ise ağaç görünümünde Ağaç görünümünde görüntülemek için JSON'u düzeltin. uyarısı çıkar. Çok büyük verilerde Bu JSON ağaç yapısı olarak işlenmek için çok büyük. veya Bu JSON, ağaç olarak gösterilemeyecek kadar çok değer içeriyor. uyarısı gösterilir. Ağaç tamamen genişletilemeyecek kadar büyükse Bu JSON tamamen genişletilemeyecek kadar büyük — ilk {count} satır gösteriliyor. uyarısı eşliğinde {count} tane daha göster… butonu belirir.
JSON Dışı Biçimleri Algılama ve Otomatik Onarım
Araç, standart dışı veya bozuk JSON formatlarını otomatik olarak algılayarak kullanıcıya onarım önerileri sunar. Algılanan standart dışı durumlar ve bunlara yönelik aksiyonlar şunlardır:
| Algılanan Durum | Açıklama ve Aksiyon Mesajı |
|---|---|
| Bu, Markdown kod bloğu içindeki JSON gibi görünüyor. | Markdown kod bloğu içindeki JSON. Uygulandığında yalnızca kod bloğu içindeki JSON korunur. |
| Bu, bir dize içinde kaçış karakterleriyle yazılmış JSON gibi görünüyor. | Kaçış karakterleri içeren dize formatındaki JSON. Uygulandığında dizedeki kaçış karakterleri çözülerek düz JSON elde edilir. |
| Bu, JSON yerine Python tarzı bir sözlük gibi görünüyor. | Python sözlüğü biçimindeki veri. Uygulandığında tırnaklar ve True/False/None, JSON olarak yeniden yazılır. |
| Bu, JSON Lines gibi görünüyor — her satırda bir değer. | Her satırda ayrı bir JSON verisi barındıran yapı. Uygulandığında satırlar tek bir JSON dizisinde birleştirilir. |
| Bu, bir JSONP geri çağırma işleviyle sarılmış JSON gibi görünüyor. | JSONP geri çağırma işleviyle sarılmış veri. Uygulandığında geri çağırma sarmalayıcısı kaldırılır. |
| Bu, JSONC gibi görünüyor — yorumlar veya sondaki virgüller var. Sözdizimini JSONC olarak değiştirin veya düzeltmeyi uygulayın. | Yorum satırları veya sonda fazladan virgül barındıran JSONC. Uygulandığında yorumlar ve sondaki virgüller kaldırılır. |
Kullanıcılar Düzeltmeyi önizle butonuna basarak Onarım önizlemesi penceresini açabilirler. Bu pencerede verinin orijinal hali Özgün etiketiyle, düzeltilmiş hali ise Düzeltme sonrası etiketiyle yan yana gösterilir. Eğer düzeltme belgenin tamamını etkiliyorsa Önizleme kısaltıldı — düzeltme belgenin tamamını etkiler. uyarısı verilir. Düzeltmeyi uygula ile onarım uygulandığında Düzeltme uygulandı. Geri almak için Ctrl/Cmd+Z tuşlarına basın. bilgisi geçer. Otomatik onarım başarısız olursa Bu girdi otomatik olarak onarılamadı. uyarısı gösterilir.
JSON Pointer ve JSONPath ile Veri Çıkarma
Ağaç görünümünde, belirli bir düğümün üzerindeki {key} için kopyalama seçenekleri menüsü kullanılarak verinin spesifik bölümleri kolayca kopyalanabilir. Bu menü şu seçenekleri sunar:
- Değeri kopyala: Seçili anahtarın değerini doğrudan kopyalar.
- JSON Pointer kopyala: RFC 6901 standardına uygun olarak, ilgili düğüme giden eğik çizgiyle ayrılmış yolu (örneğin
/store/book/0/title) kopyalar. - JSONPath kopyala: XML için XPath'e benzer şekilde, JSON yapısı içindeki sorgu yolunu (örneğin
$.store.book.title) kopyalar.
Büyük Dosyalarla Çalışma Kuralları ve Sınırlar
Araç, yüksek performanslı çalışabilmek için belirli dosya boyutu ve karakter sınırlarına sahiptir:
- Maksimum Girdi Sınırı: Aracın işleyebileceği maksimum girdi boyutu 10 MiB'dir. Bu sınır aşılırsa Girdi {limit} sınırından büyük; bu, aracın işleyebileceğinden fazla. uyarısı verilir.
- Dosya Yükleme Sınırları: Sürükle-bırak veya Dosya aç ile yüklenen dosya sınırı aşarsa Dosya çok büyük — sınır {limit}. hatası gösterilir. Sadece
.jsonveya.txtuzantılı dosyalar desteklenir; aksi halde Desteklenmeyen dosya türü — bir .json veya .txt dosyası seçin. uyarısı alınır. - Kodlama ve Okuma Hataları: Dosyaların UTF-8 kodlamasına sahip olması zorunludur. Aksi takdirde Bu dosya UTF-8 metin değil, bu yüzden burada açılamıyor. mesajı gösterilir. Dosya okunamadığında ise Bu dosya okunamadı. Yeniden seçmeyi deneyin. uyarısı verilir.
- Zaman Aşımı ve Senkronizasyon: Eşzamanlı işlem eşiği 250.000 karakterdir. Analiz işlemi çok uzun sürerse sistem güvenliği için işlem durdurulur ve Bu JSON'un denetlenmesi çok uzun sürdü ve durduruldu. Daha küçük bir belge deneyin. uyarısı gösterilir.
- Anahtar Sıralama: Anahtarları sırala butonu, nesne anahtarlarını kod noktası sırasına göre özyinelemeli olarak sıralar. Bu işlem dizilerin sırasını asla değiştirmez. Sıralama tamamlandığında Anahtarlar sıralandı — dizi sırası değişmedi. Geri almak için Ctrl/Cmd+Z tuşlarına basın. bildirimi gösterilir.
Gizlilik ve Veri İşleme Politikası
Bu aracı kullanırken veri güvenliği konusunda endişe etmenize gerek yoktur. JSON verileriniz tamamen kullanıcının tarayıcısında işlenir ve BroBroGo sunucularına hiçbir veri yüklenmez. Tüm biçimlendirme, doğrulama, küçültme ve onarım işlemleri yerel olarak tarayıcı üzerinde gerçekleştirilir.
Sıkça Sorulan Sorular
JSON verilerim karşıya yükleniyor mu? Hayır. Biçimlendirici tarayıcınızda çalışır ve JSON verilerinizi sunucuya yüklemez.
Küçültme (minify) ne işe yarar? Küçültme (minify) işlemi, aynı JSON verisini korurken gereksiz boşlukları ve satır sonlarını kaldırır.
Yinelenen anahtarlar (duplicate keys) olduğunda ne olur? Araç, yinelenen anahtarları sessizce birleştirmek veya yoksaymak yerine doğrudan hata verir. Biçimlendirme yapabilmek için bu yinelenen anahtarlardan birini kaldırmanız gerekir.
Büyük sayılar (large integers) biçimlendirme sırasında zarar görür mü? Hayır. Araç, büyük tamsayıları herhangi bir hassasiyet kaybı veya yuvarlama olmadan olduğu gibi korur.