JSON biçimlendiricinin arkasındaki hikâye

JSON bugün çoğu web API'sinin konuştuğu biçimdir, ama hiçbir komite tarafından tasarlanmadı. İcat edilmekten çok fark edildi: programlar arasında veri taşımaya tam yeten küçük bir JavaScript alt kümesi.

Parlayan bir ağaç oluşturan süslü parantezler ve iç içe veri blokları
Parlayan bir ağaç oluşturan süslü parantezler ve iç içe veri blokları

Keşfedilmiş bir biçim

2001 civarında Douglas Crockford ve State Software'deki meslektaşları, bir tarayıcı ile sunucunun eklenti olmadan veri alışverişi yapmasının yolunu arıyordu. JavaScript'in zaten anladığı nesne ve dizi değişmezlerini kullandılar, fikre bir ad verdiler ve dilbilgisini json.org'a koydular. Bir kartvizitin arkasına sığacak kadar kısa olmasıyla bilinir.

Neden yorum yok

Crockford erken bir dönemde yorumları JSON'dan çıkardı, çünkü insanlar içlerine ayrıştırıcı yönergeleri koymaya başlamıştı ve bu birlikte çalışabilirliği bozacaktı. Önerisi, ayrıştırmadan önce yorumları bir küçültücüyle silmekti. Bu yüzden biçimlendirici bir yorumu beklenmeyen karakter olarak bildirir ve yapılandırma dosyaları için JSON5 ve JSONC gibi biçimler vardır.

Bir web sayfasından standarda

JSON ilk kez 2006'da RFC 4627 olarak tanımlandı. Ecma 2013'te ECMA-404'ü yayımladı ve IETF eski metinlerin yerine 2017'de RFC 8259'u getirdi. Bu belge sistemler arasında aktarılan JSON için UTF-8 zorunlu kılar. Dilbilgisi json.org'dan beri neredeyse değişmedi: nesneler, diziler, dizeler, sayılar, true, false ve null.

Sayılar ve yollar

JSON sayıları sınırlamaz, ama çoğu ayrıştırıcı onları 64 bit kayan noktalı değer olarak saklar. Bu yüzden 9007199254740991'den büyük tamsayılar sessizce hassasiyet kaybedebilir ve büyük kimlikler çoğu zaman dize olarak gönderilir. Bir değeri göstermek için Stefan Goessner 2007'de XPath'ten esinlenerek JSONPath'i önerdi ve bu 2024'te RFC 9535 standardı oldu. Bu biçimlendiricinin kopyaladığı yollar dolar işareti ve köşeli parantezli bu gösterimi izler.

Sık sorulan sorular

JSON'u kim icat etti?

Douglas Crockford JSON'u 2000'lerin başında tanımlayıp yaygınlaştırdı. Kendisi onu keşfettiğini söyler, çünkü zaten var olan bir JavaScript alt kümesidir.

JSON neden sondaki virgüllere veya tek tırnaklara izin vermez?

Dilbilgisi her dilin onu aynı şekilde ayrıştırabilmesi için olabildiğince küçük tutuldu. Her ek kolaylık iki ayrıştırıcının anlaşamaması için yeni bir fırsat olurdu.

JSON bir JavaScript nesnesiyle aynı mı?

Hayır. JSON metindir. Anahtarlar çift tırnak ister; işlevler, undefined, yorumlar, NaN ve Infinity, JavaScript kodda kabul etse de izinli değildir.

Bunu denemeye hazır mısın?

Pencere PictorX tarayıcınızda - yükleme yok, başlamak için gerekli kredi kartı yok.

JSON biçimlendiriciyi aç