JSON nedir?
JSON, yapılandırılmış veriyi metin olarak temsil etmek için kullanılan hafif bir veri biçimidir. Web APIlerinde istemci ve sunucu arasında veri taşımak için çok yaygın kullanılır. Nesneler anahtar-değer çiftlerinden, diziler ise sıralı değerlerden oluşur. Basit görünmesine rağmen tırnak, virgül, süslü parantez ve veri türleriyle ilgili küçük bir hata tüm JSONun geçersiz olmasına neden olabilir.
Geçerli JSON kuralları
- Object anahtarları çift tırnak içinde yazılır.
- String değerleri çift tırnak içinde olmalıdır.
- String içinde kaçış karakterleri doğru kullanılmalıdır.
- Son elemandan sonra gereksiz virgül bırakılmaz.
- Boolean değerleri true/false, boş değer null olarak yazılır.
- Arrayler köşeli, objectler süslü parantezle açılıp kapanır.
JSON Formatter neden kullanılır?
Minify edilmiş veya tek satırlık JSON, özellikle büyük API yanıtlarında okumayı zorlaştırır. Formatter aracı girintileme ve satır sonları ekleyerek yapıyı görünür hale getirir. Bu işlem verinin anlamını değiştirmez; yalnızca sunum biçimini okunabilir hale getirir.
JSON Formatter ile bir JSONu okunabilir biçime çevirebilir, JSON Validator ile sözdizimi hatalarını yakalayabilirsiniz.
JSON Minifier ne zaman kullanılır?
Üretim ortamında JSON çıktısını küçültmek ağ üzerinden taşınan byte sayısını azaltabilir. Ancak minify, veriyi sıkıştırma algoritmalarının yerine geçmez. HTTP response compression ile birlikte değerlendirildiğinde gerçek trafik boyutu çok daha fazla azalabilir.
API JSON hatalarında hangi başlıklar kontrol edilmeli?
- Yanıtın Content-Type değerinin application/json olması.
- HTTP durum kodunun API sözleşmesiyle uyumlu olması.
- Yanıt gövdesinin gerçekten geçerli JSON olması.
- UTF-8 karakterlerin doğru taşınması.
- Hata yanıtlarının da tutarlı bir JSON şemasına sahip olması.
- Boş body dönen 204 gibi yanıtların istemci tarafından JSON parse edilmeye çalışılmaması.
JSON parse hatası nasıl teşhis edilir?
“Unexpected token” gibi hatalar çoğu zaman JSON parserın beklemediği bir karakter gördüğünü gösterir. Yanıtı doğrudan geliştirici araçlarının Network sekmesinde görmek, status code ve Content-Type ile birlikte değerlendirmek faydalıdır. Bazen API JSON beklenirken PHP, Nginx veya uygulama katmanından HTML hata sayfası döner; parser da ilk karakter olan “<” nedeniyle hata verir.
JSON ile CSV arasındaki fark
JSON iç içe geçmiş nesne ve dizileri ifade etmede güçlüdür; CSV ise tablo benzeri düz veri için daha basittir. Bir API yanıtını raporlama veya spreadsheet işlemine taşımak istediğinizde JSON → CSV dönüşümü pratik olabilir. Ancak nested objectlerin CSVde nasıl kolonlara dönüştürüleceği önceden tanımlanmalıdır.
Geliştirici iş akışında JSON to CSV, JSON Minifier ve JSON Formatter araçlarını birlikte kullanabilirsiniz.
Sonuç
JSON basit bir format olsa da API entegrasyonlarında küçük sözdizimi ve içerik hataları büyük sorunlar yaratabilir. Formatter ile okunabilirliği, Validator ile doğruluğu, Network araçlarıyla da HTTP katmanını birlikte kontrol etmek en hızlı teşhis yöntemlerinden biridir.
APIlerde hata yanıtı da JSON olmalı mı?
Bir API JSON tabanlıysa hata yanıtlarının da tutarlı bir şema kullanması istemci geliştirmeyi kolaylaştırır. Örneğin hata kodu, mesaj ve izleme kimliği gibi alanlar standartlaştırılabilir. Ancak bu yapı uygulamanın gerçek API sözleşmesine göre belirlenmelidir; geliştirici araçları yalnızca sözdizimini doğrular.
JSON güvenliği konusunda nelere dikkat edilmeli?
JSON formatının kendisi güvenlik sınırı değildir. Kullanıcıdan gelen JSON doğrulanmalı, beklenmeyen alanlar ve veri tipleri ele alınmalı, yetkilendirme sunucu tarafında uygulanmalıdır. Özellikle JSON içindeki veriyi daha sonra HTMLe basarken uygun output encoding yapılması önemlidir.
Büyük JSON yanıtlarında performans
API tek seferde çok büyük JSON döndürüyorsa ağ trafiği, parse süresi ve bellek kullanımı artabilir. Pagination, field selection, compression ve uygun response cache stratejileri düşünülebilir. JSON Minifier yalnızca biçimsel byte azaltımı sağlar; veri modelini küçültmek çoğu zaman daha büyük kazanım getirir.
Content-Type neden önemlidir?
Bir endpoint JSON döndürüyorsa doğru Content-Type kullanmak istemcinin yanıtı doğru yorumlamasına yardımcı olur. API hata verdiğinde HTML hata sayfasının JSON bekleyen frontend tarafından parse edilmesi, geliştirici konsolunda kafa karıştırıcı “JSON parse” hataları oluşturabilir. Önce Network sekmesinde gerçek responseu görmek çoğu zaman en hızlı adımdır.
JSON şemasını belgelemek
Büyük ekiplerde API sözleşmesini açıkça belgelemek, formatter kullanmaktan daha değerlidir. Alan adlarının anlamı, zorunlu/opsiyonel durumları, veri tipleri ve hata formatı belirli olduğunda frontend ve backend ekipleri daha az varsayım yapar. JSON Schema gibi yaklaşımlar doğrulama süreçlerine de yardımcı olabilir.