JSON

insanların okuyabileceği yapıda yazı temelli standart
(Json sayfasından yönlendirildi)

JSON ("JavaScript Object Notation"); bütün programlama dilleri arasında, yapılandırılmış veri değişimini kolaylaştıran bir metin biçimidir. Yay ayraç, köşeli ayraç, iki nokta ve virgüllü yazımı ile birçok bağlam ve uygulamada kullanışlıdır. ECMAScript Dil Şartnamesi (üçüncü sürümü)'nde tanımlandığı gibi JavaScript'te bulunan nesne değişmezlerinden esinlenilerek tasarlanmıştır. ECMAScript Programlama Dilinden türetilmiştir fakat programlama dilinden bağımsızdır.[2] JSON sahip olduğu ağaç yapısıyla DOM ve XML ile benzerlik gösterse de bunlardan tamamen farklı bir yapıdadır.

Javascript Object Notation (JSON)
Javascript Nesne Notasyonu
Dosya uzantısı:.json
MIME kodu:application/json[1]
Standart:STD 90 (RFC 8259), ECMA-404, ISO/IEC 21778:2017

Şu veri tiplerini destekler:

  • Number
  • String
  • Boolean
  • Array
  • Object
  • null

İsimlendirme ve Okunuş değiştir

JSON ismi Douglas Crockford ve diğerleri tarafından Mart 2001 tarihinde kurulan State Software şirketinden ortaya çıkmıştır.

Uluslararası standart ECMA-404 ve ISO/IEC 21778:2017 standartları JSON'un /ˈ.sən/ aynı Jason ismi gibi okunması gerektiğini tanımlamaktadır,[3][4] Crockford 2011 tarihinde "Nasıl okunması gerektiği hakkında bol bol tartışılabilir ancak ben umursamıyorum" demiştir.[5]

Tarihçe değiştir

JSON 2000'li yılların başında tarayıcı eklentileri ve flash olmadan durumsuz tarayıcı sunucu arası gerçek zamanlı iletişim sağlamak amacıyla ortaya çıktı. Douglas Crackford tarafından ilk olarak Json'u tanımladı ve popülerleştirdi.[6]

JSON.org websitesi 2002 yılında ortaya çıktı, 2005 yılında Yahoo servislerinin bazılarına JSON olarak ulaşılmasını sağladı.

Douglas Crackford ayrıca JSON Lisansı'nı ortaya çıkardı ilk bakışta MIT lisansına benzese de "The Software shall be used for Good, not Evil" yani "Bu yazılım sadece iyi amaçlar için kullanılmalı kötü amaçlar için değil" maddesi eklenmişti, bu madde pek çok açık kaynak kütüphanenin lisansına ters düşerek lisans uyumsuzluğuna neden olmuştur.

Örnek değiştir

Bu örnek muhtemel bir mağazanın kategorilerini ve kategori içerisindeki kitapları ad ve yazarlarıyla göstermektedir.

 {
    "tip": "kitap",
    "tur": "roman",
    "urunler": [
        {"ad": "Ihtiyar Kemanci", "yazar": "Nihat Genc"},
        {"ad": "Su Cilgin Turkler", "yazar": "Turgut Ozakman"},
        {"ad": "Kar", "yazar": "Orhan Pamuk"}
        ]
 }

Kullanım değiştir

JSON her ne kadar bir veri formatı olsa da bazen ayar dosyaları içinde kullanılmaktadır, bu tip kullanımlarda yorumlar yararlı bulunmuş ve JSON yorumları desteklemediği için standart dışı JSON türevleri ortaya çıkmıştır bunların arasında HJSON, HOCON, JSON5 (JSON'un 5. sürümü değildir).[7]

JSON pek çok JavaScript yorumlayıcısında gömülü geldiği için eval() işlevine JSON koyup bu şekilde verinin temizlenmeden konması güvenlik açıklarına neden olmaktadır.[8] Bu sorundan ötürü JavaScript'te JSON.parse() işlevi kullanılmalıdır.[9]

Kaynakça değiştir

  1. ^ "The application/json Media Type for JavaScript Object Notation (JSON)". JSON.ORG. Temmuz 2006. 1 Ocak 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Temmuz 2016. 
  2. ^ "The JSON Data Interchange Format" (PDF). 5 Mart 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 9 Temmuz 2016. 
  3. ^ "ISO/IEC 21778:2017". ISO. 15 Aralık 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Temmuz 2019. 
  4. ^ "Standard ECMA-404 - The JSON Data Interchange Syntax" (PDF). Ecma International. December 2017. s. 1, footnote. 20 Ekim 2019 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 27 Ekim 2019. 
  5. ^ "Douglas Crockford: The JSON Saga - Transcript Vids". transcriptvids.com. 25 Şubat 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2019. 
  6. ^ "Unofficial Java History". Edu4Java. 26 Mayıs 2014. 26 Mayıs 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Ağustos 2019. In 1996, Macromedia launches Flash technology which occupies the space left by Java and ActiveX, becoming the de facto standard for animation on the client side. 
  7. ^ Edelman, Jason; Lowe, Scott; Oswalt, Matt. Network Programmability and Automation. O'Reilly Media. for data representation you can pick one of the following: YAML, YAMLEX, JSON, JSON5, HJSON, or even pure Python 
  8. ^ "JSON: The JavaScript subset that isn't". Magnus Holm. 13 Mayıs 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2011. 
  9. ^ "ECMAScript Fifth Edition" (PDF). April 14, 2011 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: March 18, 2011. 

Dış bağlantılar değiştir