JSON cevrimici nasil dogrulanir: pratik orneklerle gelistirici rehberi

8 dk okuma süresi

JSON'u kolayca dogrulamayi, biclendirmeyi ve hata ayiklamayi ogrenin. Yaygin hatalar, XML ile farklar, en iyi uygulamalar ve ucretsiz cevrimici arac.

JSON nedir ve neden dogrulamak gerekir

JSON (JavaScript Object Notation) modern web gelistirmede en yaygin kullanilan veri degisim formatidir. Hemen hemen tum REST API'lar JSON formatinda veri dondurur, package.json veya tsconfig.json gibi yapi dosyalari bu formati kullanir ve MongoDB gibi veritabanlari belgeleri JSON formatinda saklar.

Sorun su ki, yanlis yerlestirilmis tek bir karakter (fazla bir virgul, eksik bir tirnak, kapatilmamis bir parantez) tum JSON'u gecersiz kilar ve uygulamanizda hatalara neden olur. Bir API yanitindaki gecersiz JSON frontend'inizi bozabilir. Soz dizimi hatasi olan bir tsconfig.json, TypeScript'in derlemesini engeller.

JSON'u kullanmadan once dogrulamak saatlerce hata ayiklamayi onler. NexTools JSON dogrulayici ile herhangi bir JSON'u yapistirabilir, hatalari tam satir numarasiyla gorebilir ve otomatik olarak bicimlendirilmis ciktiya ulasabilirsiniz.

JSON temel soz dizimi: bilinmesi gereken kurallar

JSON'un katı soz dizimi kurallari vardir. Herhangi birini ihlal etmek gecersiz JSON uretir:

  • Anahtarlar cift tirnak icinde olmalidir: {"isim": "Ana"} gecerlidir. {isim: "Ana"} GECERSIZDIR.
  • Dizeler cift tirnak kullanir, asla tek tirnak degil: "deger" gecerlidir. 'deger' GECERSIZDIR.
  • Sondaki virgul olmaz: {"a": 1, "b": 2} gecerlidir. {"a": 1, "b": 2,} GECERSIZDIR.
  • Yorum olmaz: JSON icinde // veya /* */ kullanamazsiniz.
  • Sayilar tirnak icinde degildir: {"yas": 25} gecerlidir. {"yas": "25"} calisir ama deger sayi degil, dizedir.

JSON'da izin verilen veri turleri:

TurOrnekNotlar
String"merhaba"Her zaman cift tirnak
Number42, 3.14, -7Tam sayi veya ondalik, tirnak olmadan
Booleantrue, falseKucuk harf, tirnak olmadan
NullnullKucuk harf, tirnak olmadan
Array[1, 2, 3]Virgullerle ayrilmis degerler
Object{"anahtar": "deger"}Anahtar-deger ciftleri

JSON'daki en yaygin 10 hata

JSON ile calisirken en sik karsilasacaginiz hatalar:

  1. Son elemanin ardindan virgul:
    {"items": [1, 2, 3,]} — 3'ten sonraki virgul gecersiz.
  2. Cift tirnak yerine tek tirnak:
    {'isim': 'Ali'}{"isim": "Ali"} olmali.
  3. Tirnaksiz anahtarlar:
    {yas: 30}{"yas": 30} olmali.
  4. Kacissiz kontrol karakterleri:
    Dizelerdeki tab ve satir sonlari \t ve \n olarak yazilmali.
  5. Dizelerdeki kacissiz tirnaklar:
    Ic tirnaklarin kacis karakteri gerekir.
  6. Yorumlar:
    JSON hicbir tur yorumu desteklemez.
  7. NaN, Infinity veya undefined:
    Bu JavaScript degerleri JSON'da GECERSIZDIR. Bunlarin yerine null kullanin.
  8. Onaltilik degerler:
    {"renk": 0xFF0000} gecersiz. {"renk": "#FF0000"} kullanin.
  9. Turlu dizilerde karisik turler:
    [1, "iki", true] gecerli JSON'dur, ama bircok API homojen diziler bekler.
  10. BOM (Byte Order Mark):
    Bazi editorler dosyanin basina gorunmez baytlar ekler ve JSON'u gecersiz kilar. Her zaman BOM'suz UTF-8 olarak kaydedin.

Tum bu hatalar JSON dogrulayici tarafindan otomatik olarak tespit edilir ve her hatanin tam satiri ve konumu gosterilir.

JSON nasil bicimlendirilir ve kucultulur

JSON iki sekilde sunulabilir: insan okunabilirligi icin bicimlendirilmis (pretty-print) ve verimli aktarim icin kucultulmus.

Bicimlendirilmis JSON:

{
  "kullanici": {
    "isim": "Ayse",
    "yas": 28,
    "aktif": true
  }
}

Kucultulmus JSON (ayni veri, daha az bayt):

{"kullanici":{"isim":"Ayse","yas":28,"aktif":true}}

Kucultulmus surum daha az yer kaplar (API'lar ve depolama icin ideal), bicimlendirilmis surum ise okumasi ve hata ayiklamasi cok daha kolaydir.

JavaScript'te:

JSON.stringify(data, null, 2)  // 2 boslukla bicimlendirilmis
JSON.stringify(data)           // kucultulmus

Buyuk JSON dosyalarini kucultmek icin JSON, CSS ve JavaScript'i isleten kod kucultme aracini kullanin.

JSON vs XML: hangisi ne zaman kullanilir

JSON'dan once XML, veri degisiminin baskin formatiydi. Her ikisi de hala kullanilmaktadir, ancak farkli amaclar icin:

OzellikJSONXML
OkunabilirlikDaha ozDaha ayrintili
Boyut%30-50 daha kucukDaha buyuk
Veri turleriString, Number, Boolean, Null, Array, ObjectHer sey metin
YorumlarDesteklenmezDesteklenir
SemaJSON SchemaXSD, DTD
Ana kullanimREST API, yapilandirmaSOAP, belgeler, RSS
AyristirmaYerel JSON.parse()XML ayristirici gerekir

2026'da JSON, web gelistirme, API'lar ve mobil uygulamalarda baskindir. XML, eski kurumsal sistemlerde, RSS/Atom beslemelerinde ve DOCX gibi belge formatlarinda varligini surdurmektedir.

Gunluk JSON calismasi icin araclar

Dogrulamanin yani sira, bu tamamlayici araclar isi kolaylastirir:

  • JSON Dogrulayici: Soz dizimini kontrol eder, satir numaralariyla hatalari gosterir ve otomatik bicimlendirir.
  • Kod Kucultme Araci: Bosluklari ve satir sonlarini kaldirarak JSON'u sikistirir.
  • Base64 Kodlayici: URL'lerde veya HTTP basliklarinda iletmek icin JSON'u Base64'e kodlar.
  • Metin Karsilastirici: Farkliliklari bulmak icin iki JSON surumunu karsilastirir.

Tarayicide:

  • JSON.parse(jsonString) — Bir JSON dizesini JavaScript nesnesine donusturur. JSON gecersizse hata firlatir.
  • JSON.stringify(obj, null, 2) — Bir nesneyi bicimlendirilmis JSON'a donusturur.

JSON Schema: yalnizca soz dizimini degil yapiyi dogrulamak

Soz dizimi dogrulamasi yalnizca JSON'un dogru bicimlendirildigini kontrol eder. Ancak gercek uygulamalarda verilerin dogru yapiya sahip oldugundan da emin olmaniz gerekir.

Bunun icin JSON Schema vardir — JSON belgelerinin yapisini tanimlayan bir standart:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["isim", "yas", "email"],
  "properties": {
    "isim": { "type": "string", "minLength": 1 },
    "yas": { "type": "integer", "minimum": 0, "maximum": 150 },
    "email": { "type": "string", "format": "email" }
  }
}

Bu sema ile herhangi bir kullanici JSON'unun isim (bos olmayan dize), yas (0 ile 150 arasinda tam sayi) ve email (gecerli format) icerip icermedigini otomatik olarak dogrulayabilirsiniz. Ajv (JavaScript), jsonschema (Python) ve Newtonsoft (.NET) gibi kutuphaneler JSON Schema dogrulamasini uygular.

Uretim ortaminda JSON ile calisma en iyi uygulamalari

Bu uygulamalar gercek projelerdeki yaygin sorunlardan kacinmaniza yardimci olacaktir:

  • Dis kaynaklardan gelen JSON'u her zaman dogrulayin: Bir API'dan, kullanici yuklemesinden veya webhook'tan gelen herhangi bir JSON, islenmeden once bir try-catch icinde JSON.parse()'tan gecmelidir.
  • Anahtarlar icin camelCase kullanin: JavaScript/TypeScript'te standart kuralidir. user_name yerine userName.
  • 3-4 seviyeden fazla ic ice gecirmekten kacinin: Derin ic ice gecmis JSON okumasi, gezinmesi ve bakimi zordur.
  • Sifrelenmeyen JSON'da hassas verileri saklamayin: Tokenlar, sifreler ve ozel anahtarlar, log'larda veya API yanitlarinda acik metin JSON'da asla gorulmemelidir.
  • Istege bagli alanlari atlamak yerine null kullanin: {"ikinciAd": null} alani atlamaktan daha iyidir.
  • Ayristirma hatalarini zarifce ele alin: Son kullaniciya JSON.parse'in ham hatasini gostermeyin. Dahili olarak kaydedin ve kullanici dostu bir mesaj gosterin.

Bu aracı deneyin:

Aracı aç

Sıkça sorulan sorular

JSON'm neden ayristirma sirasinda 'Unexpected token' gosteriyor

'Unexpected token' hatasi, JSON.parse'in beklenmeyen bir karakter buldugu anlamina gelir. En yaygin nedenler: cift tirnak yerine tek tirnak, son elemandan sonra virgul, JSON icindeki yorumlar veya dosya basindaki gorunmez BOM karakterleri. JSON'unuzu cevrimici bir dogrulayiciya yapistirarak hatanin tam olarak nerede oldugunu gorun.

JSON dosyasi icinde yorum kullanilabilir mi

Hayir. JSON belirtimi hicbir tur yoruma izin vermez (ne // ne de /* */). Yorumlu JSON'a ihtiyaciniz varsa JSONC (VS Code'un settings.json'da kullandigi), JSON5 veya YAML gibi alternatif formatlar kullanabilirsiniz.

JSON ile JavaScript nesnesi arasindaki fark nedir

JavaScript nesnesi tirnaksiz anahtarlara, deger olarak fonksiyonlara, undefined'a, Symbol'e ve sondaki virgullere sahip olabilir. JSON daha kisitlicidir: tum anahtarlarin cift tirnaklari olmalidir, yalnizca string, number, boolean, null, array ve object degerlere izin verir, sondaki virgullere ve yorumlara izin vermez.

Tarayici icin ne kadar JSON cok buyuktur

Modern tarayicilarin cogu 50-100 MB'a kadar JSON'u sorunsuz ayristirabilir. Bunun otesinde, ayristirma ana is parcacigini engelleyebilir ve arayuzu dondurabilir. Cok buyuk JSON icin JSONStream gibi akis ayristiricilari kullanin veya verileri sunucu tarafinda isleyin.

JSON'u CSV'ye veya tersini nasil donusturebilirim

JSON'dan CSV'ye: JSON ayni anahtarlara sahip nesnelerden olusan bir diziyse, anahtarlar sutunlara ve her nesne bir satira donusur. CSV'den JSON'a: her satir basliklarla anahtar olarak bir nesne olur. Bunu JavaScript ile programatik olarak veya cevrimici araclarla yapabilirsiniz.

Yapilandirma dosyalari icin JSON mu YAML mi daha iyidir

Kullanim durumuna baglidir. JSON daha katıdir (daha az belirsiz hata), daha hizli ayristirilir ve API'lar icin standarttir. YAML insanlar icin daha okunabilirdir, yorumlari destekler ve DevOps'ta populerdir (Docker Compose, GitHub Actions, Kubernetes). Insanlarin duzenleyecegi yapilandirmalar icin YAML genellikle daha iyidir. Makineler arasi veriler icin JSON standart tercihtir.