JavaScript Nesnesi Gösterimi
| JSON | |
|---|---|
| Eklenti | .json
|
| MIME türü | application/json
|
| İnsan | Veri değişimi |
| Uzantısı | JavaScript |
| Standart | RFC 4627 |
| Açık biçim ? | Evet |
| İnternet sitesi | json.org |
Bilgisayar bilimlerinde , web programlama bağlamında, JavaScript Object Notation'ın kısaltması olan JSON (telaffuz: ˈdʒeɪ.sɑn), istemci / sunucu uygulamaları arasında veri alışverişi için uygun bir formattır . [1]
JavaScript Standard ECMA-262 3. baskısını (Aralık 1999) temel alır , ancak ondan bağımsızdır. AJAX'ta XML / XSLT'ye alternatif olarak kullanılır . [2]
Özellikler
JSON'un sadeliği , özellikle AJAX programlamada kullanımı hızlı hale getirdi . JavaScript aracılığıyla kullanımı özellikle basittir, aslında yorumlayıcı , işlev aracılığıyla geçerli bir içeriği temsil eden bir dizeyi ayrıştırabilir . [3] Bu, JavaScript programlamanın Web dünyasında yayılması nedeniyle onu hızla popüler hale getirdi .
JSON.parse()
Bu format tarafından desteklenen veri türleri şunlardır:
- boolean (
truevefalse); - tamsayılar, kayan noktalı sayılar ;
- çift tırnak (
") içine alınmış dizeler; - diziler (virgülle ayrılmış ve köşeli parantez içine alınmış, sıralı değer dizileri
[]); - ilişkisel diziler (parantez içine alınmış virgülle ayrılmış anahtar/değer çiftleri dizileri);
null.
Çoğu programlama dili , JSON'un diğer dillerle kullanılmasına izin veren birçok projenin doğduğu JSON tarafından tanımlanana çok benzer bir tür sistemine sahiptir, örneğin: ActionScript , C , C # , Adobe ColdFusion , Ortak LISP , Delphi , E , Erlang , Java , JavaScript , Lua , ML , Objective Caml , Perl , PHP , Python , REBOL , Ruby ve Rust .
Bir JSON akışınınContent-Type: application/json bir HTTP başlığı olmalıdır . [4]
JSON'u ilk benimseyenlerden biri Yahoo! , 2005'ten beri. [5]
Diğer biçimlendirme dilleriyle ilişkisi
JSON bir veri değişim formatıdır ve genellikle bir biçimlendirme dili olan XML ile karşılaştırılır . Her ikisinin de ikili veri temsil sistemi yoktur , bu nedenle ikili verileri metin biçimine dönüştürmek için uygun kuralları (örneğin Base64 ) benimsemek programcıya kalmıştır.
JSON'un bazı sınırlamaları YAML kapsamındadır .
Biçim
Aşağıdaki örnek, varsayımsal bir kişinin verilerini JSON biçiminde temsil eder:
{
"ad" : "John" ,
"soyadı" : "Rossi" ,
"etkin" : true ,
"favoriteNumber" : 42 ,
"birthday" : {
"gün" : 1 ,
"ay" : 1 ,
"yıl" : 2000
},
"diller" : [ "o" , "en" ]
}
kullanır
JavaScript'te
JavaScript'te JSON verileriyle yanıt veren bir URL'ye yapılan AJAX isteğinin basit bir örneğini burada bulabilirsiniz. [6]
var httpRequest = new XMLHttpRequest ();
//
httpRequest'i geri çağır . addEventListener ( 'load' , function () {
// yanıtın ayrıştırılması (JSON biçiminde olduğu varsayılır)
var data = JSON .parse ( this . responseText ) ;
// konsol verileriyle bir şeyler yapın . günlük ( tarih );
} );
// başlatma ve
httpRequest gönderme . open ( 'GET' , 'https://it.wikipedia.org/w/api.php?action=query&prop=info&titles=Pagina+principale&format=json' );
httpTalebi . gönder ();
Mobil uygulamalar
Back-end'in mobil uygulama ile iletişimini sağlamak için HTTP protokolü üzerinden JSON formatında veri göndermek mümkündür [7] .
Destek
JavaScript'te
Özellikle 2009'danJSON.parse() önceki bazı sürümleri alfabetik sırayla belirtme desteği olmayan tarayıcılar arasında : [8]
- Internet Explorer sürüm 8'den daha eski
- 3.5 sürümünden önceki Mozilla Firefox
- Sürüm 4'ten önceki Safari
Çok sayıda kitaplık, Ajax isteklerini yapmak için JSON biçimini kullanmayı kolaylaştırdı. JQuery ve AngularJS'den bahsedilmiştir . [9] [10]
Tarihsel olarak, bu iki yöntem görünüşte birbirinin yerine kullanılabilir olduğundan , eval()bunun yerine yöntemin gelişigüzel bir şekilde benimsenmesi olmuştur . JSON.parse()Ancak, yöntem eval()keyfi girdilere karşı koruma sağlamaz ve ciddi güvenlik açıklarına yol açabilir. [3]
XMLHttpRequest desteği kronolojik sırayla belirtilir: [11]
- Mozilla Firefox 3.5 ( 2009 )
- Google Chrome 7 ( 2010 )
- Safari 5 ( 2010 )
- Internet Explorer 10 ( 2012 )
- iOS 5.1 için Safari ve Google Chrome ( 2012 )
Diğer destekleyici metodolojiler
JSON akışlarını almanın artık kullanılmayan başka yolları da var , örneğin, <iframe>benzeri öğeyi veya formu kullanarak <form action="url_to_cgi_script" target="name_of_hidden_iframe">. Bu yaklaşımlar, kapsamlı XMLHTTPRequest nesne desteğinden önce yaygın olarak kullanılıyordu.
Etiket , JSON <script> verilerini almak için de kullanılabilir. Bu, XMLHTTPRequest kullanımıyla ortaya çıkan ancak güvenlik pahasına ortaya çıkan bazı sınırlamaların üstesinden gelinmesine olanak tanır. [12]
Notlar
- ^ JSON'da JSON ile tanışın . _ _ 16 Nisan 2015'te erişildi .
«JSON (JavaScript Object Notation), hafif bir veri değişim biçimidir. İnsanların okuması ve yazması kolaydır. Makinelerin ayrıştırması ve üretmesi kolaydır."
- ^ ( EN ) Nihai taslak Standart ECMA-262 baskı 5.1, Mart 2011 (Rev. 6) - Ecma 262 ( PDF ), ECMA International , Mart 2011. Erişim tarihi: 16 Nisan 2015 ( 12 Nisan 2015 tarihinde orijinalinden arşivlendi ) .
- ^ a b JSON.parse ( ) vs. eval , stackoverflow.com'da . 20 Şubat 2018'de alındı .
- ^ W3C'deki uygulama / json kodlama algoritması .
- ^ JSON JavaScript Nesne Gösterimi , Yahoo! , 19 Temmuz 2005. Erişim tarihi: 16 Nisan 2015 .
- ^ Developer.mozilla.org'da XMLHttpRequest'i kullanın . 20 Şubat 2018'de alındı .
- ^ 12 Şubat 2017'de freeCodeCamp.org adresinde JSON işaretlemesinden başka bir şey kullanmadan platformlar arası mobil uygulamalar nasıl oluşturulur . Erişim tarihi: 17 Ekim 2020 .
- ^ Caneuse.com'da JSON.parse'ı kullanabilir miyim ? _ _ 20 Şubat 2018'de alındı .
- ^ ( EN ) $ http , AngularJS üzerinde . 20 Şubat 2018'de alındı ."$ http hizmeti, tarayıcının XMLHttpRequest nesnesi veya JSONP aracılığıyla uzak HTTP sunucularıyla iletişimi kolaylaştıran temel bir AngularJS hizmetidir."
- ^ JQuery.getJSON , jQuery üzerinde . _ _ 20 Şubat 2018'de alındı ."Bir GET HTTP isteği kullanarak sunucudan JSON kodlu verileri yükleyin"
- ^ XMLHttpRequest'i caneuse.com'da kullanabilir miyim ? _ _ 20 Şubat 2018'de alındı .
- ^ Douglas Crockford, JSONRequest , json.org , 17 Nisan 2006. Erişim tarihi: 20 Şubat 2018 .
İlgili öğeler
Diğer projeler
Wikimedia Commons , JSON'daki görüntüleri veya diğer dosyaları içerir
Dış bağlantılar
- ( TR ) Resmi site , json.org adresinde .
- Json ileilgili İtalyan içgörü sitesi, json.it üzerinde.
- JSON biçimlendirici , jsonformatter.org adresinde .
- JSON görüntüleyici , codebeautify.org'da .