JSON'un anlamı ve ilk örnek
JSON, JavaScript Object Notation ifadesinin kısaltmasıdır. 2000'li yılların başında Douglas Crockford tarafından yaygınlaştırılmıştır, sözdizimini JavaScript'ten alır ve RFC 8259 ile ECMA-404 olarak standartlaştırılmıştır. Adına rağmen JSON hiçbir programlama diline bağlı değildir: neredeyse her dil JSON okuyup yazabilir.
Bir kişiyi tanımlayan küçük bir JSON belgesi:
{"name": "Ada Lovelace", "born": 1815, "languages": ["English", "French"], "mathematician": true, "spouse": null}
JSON veri türleri
| Tür | Örnek | Notlar |
|---|---|---|
| String (metin) | "Hello" | çift tırnak içinde metin, \n gibi kaçış dizileriyle |
| Number (sayı) | 42, -3.14, 6.02e23 | NaN, Infinity, onaltılık (hex) değer veya baştaki sıfır kullanılamaz |
| Boolean | true, false | her zaman küçük harf |
| Null | null | boş veya bilinmeyen bir değer |
| Object (nesne) | {"key": "value"} | ad/değer çiftleri; adlar string'dir |
| Array (dizi) | [1, 2, 3] | herhangi bir türdeki değerlerin sıralı listesi |
JSON'da tarih türü yoktur: tarihler genellikle "2026-05-01T10:00:00Z" gibi ISO 8601 string'leri olarak yazılır.
JSON formatı: sözdizimi kuralları
- Veriler ad/değer çiftleri olarak yazılır:
"name": "Ada". - Adlar (anahtarlar) ve string'ler her zaman çift tırnak kullanır – asla tek tırnak değil.
- Öğeler virgülle ayrılır; son öğeden sonra virgül konmaz.
- Süslü parantezler
{ }nesneleri, köşeli parantezler[ ]dizileri içerir. - Yorumlara izin verilmez.
- Öğeler arasındaki boşluklar ve satır sonları yok sayılır; bu yüzden aynı veri küçültülebilir veya formatlanabilir.
- Bir JSON metni tek bir üst düzey değer içerir ve UTF-8 ile kodlanır.
JSON dosyası nedir?
JSON dosyası, tek bir JSON belgesi içeren ve .json uzantısına sahip düz metin dosyasıdır. Medya türü application/json olup UTF-8 olarak kaydedilmelidir. Tipik JSON dosyaları; uygulama ve web sitelerinden alınan veri dışa aktarımları (örneğin Google Takeout veya sosyal medya veri indirmeleri), package.json gibi yapılandırma dosyaları, diske kaydedilmiş API yanıtları ve analiz için kullanılan veri kümeleridir. Düz metin olduğu için bir JSON dosyasını açmak güvenlidir – kod çalıştıramaz.
JSON dosyası nasıl açılır?
| Nerede | Nasıl |
|---|---|
| Windows | Dosyaya sağ tıklayın → Birlikte aç → Not Defteri'ni seçin veya VS Code gibi bir kod editörü kullanın. Dosyayı bir tarayıcı penceresine sürüklemek de içeriğini gösterir. |
| Mac | TextEdit veya bir kod editörüyle açın ya da bir tarayıcı penceresine sürükleyin. |
| iPhone ve Android | Dosyalar uygulamasından bir metin görüntüleyicide açın veya online bir JSON görüntüleyiciye yükleyin – bizimki telefonlarda da çalışır ve dosya cihazınızda kalır. |
| Web tarayıcısı | Firefox'ta yerleşik bir JSON görüntüleyici vardır; her tarayıcıda online bir JSON görüntüleyici veriyi daraltılabilir bir ağaç olarak gösterir. |
| Excel | Windows'ta Veri → Veri Al → Dosyadan → JSON'dan yolunu kullanın veya dosyayı önce JSON'dan CSV'ye dönüştürücüyle çevirin. |
JSON ve XML karşılaştırması
| JSON | XML | |
|---|---|---|
| Sözdizimi | süslü ve köşeli parantezler, ad/değer çiftleri | açılış ve kapanış etiketleri |
| Veri türleri | string, sayı, boolean, null, nesne, dizi | bir şema tür tanımlamadıkça yalnızca metin |
| Boyut | kompakt | kapanış etiketleri nedeniyle daha büyük |
| Yorumlar | yok | var |
| Öznitelikler, ad alanları | yok | var |
| Tipik kullanım | web API'leri, yapılandırma, NoSQL veritabanları | belgeler, ofis dosyaları, SOAP ve kurumsal sistemler |
API'lerde ve uygulamalarda JSON
Çoğu web API'si JSON gönderir ve alır. İstemci Content-Type: application/json başlığıyla bir istek gönderir, sunucu JSON ile yanıt verir ve program bu yanıtı JavaScript'te JSON.parse, Python'da json.loads veya PHP'de json_decode ile yerel nesnelere dönüştürür. JSON ayrıca package.json ve tsconfig.json gibi yapılandırma dosyalarında, MongoDB gibi belge veritabanlarında ve yapay zekâ modellerinin yapılandırılmış çıktılarında da kullanılır.
Sık yapılan JSON hataları
- Son öğeden sonra gelen virgül:
[1, 2,] - Tek tırnak veya tırnaksız anahtarlar:
{'a': 1},{a: 1} // notegibi yorumlar- Öğeler arasında eksik virgül veya parantez
undefined,NaNveyaTruegibi JavaScript ya da Python değerleri
Sorunun tam satırını ve sütununu görmek için verilerinizi JSON doğrulama aracına yapıştırın veya Onar ile otomatik olarak düzeltin.
JSON5, JSONC ve JSON Lines
- JSON5 – elle yazılan dosyalar için daha esnek bir üst küme: yorumlar, sondaki virgüller, tek tırnaklar, tırnaksız anahtarlar ve onaltılık sayılar. Standart JSON ayrıştırıcıları bunu okuyamaz.
- JSONC – yorum içeren JSON; VS Code ayarlarında ve
tsconfig.jsondosyasında kullanılır. - JSON Lines / NDJSON (
.jsonl) – her satırda bir JSON değeri; loglar ve büyük veri kümelerinin akışı (streaming) için idealdir. - GeoJSON – coğrafi nesneler için JSON; RFC 7946 standardında tanımlanmıştır.
Sıkça sorulan sorular
JSON bir programlama dili mi?
Hayır. JSON bir veri formatıdır: veriyi tanımlar ancak mantık, fonksiyon veya yorum içeremez.
JSON, JavaScript nesnesiyle aynı şey mi?
Hayır. JSON, JavaScript nesne literal'ine benzeyen bir metindir ancak daha katıdır: anahtarlar ve string'ler çift tırnak gerektirir; fonksiyonlara, undefined değerine ve yorumlara izin verilmez. JSON.parse bu metni gerçek bir nesneye dönüştürür.
JSON dosyası nasıl oluşturulur?
Verileri yukarıdaki kurallara uyarak herhangi bir metin editöründe yazın ve .json uzantısıyla UTF-8 olarak kaydedin. Kullanmadan önce bir JSON doğrulama aracıyla kontrol edin.
Son güncelleme: