close

JavaScript Nesnesi Gösterimi

Gezinmeye atla Aramaya atla
JSON
JSON vektör logosu.svg
Eklenti.json
MIME türüapplication/json
İnsanVeri değişimi
UzantısıJavaScript
StandartRFC 4627
Açık biçim ?Evet
İnternet sitesijson.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 ( trueve false);
  • 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]

Ç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]

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

  1. ^ 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."
  2. ^ ( 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 ) .
  3. ^ a b JSON.parse ( ) vs. eval , stackoverflow.com'da . 20 Şubat 2018'de alındı .
  4. ^ W3C'deki uygulama / json kodlama algoritması .
  5. ^ JSON JavaScript Nesne Gösterimi , Yahoo! , 19 Temmuz 2005. Erişim tarihi: 16 Nisan 2015 .
  6. ^ Developer.mozilla.org'da XMLHttpRequest'i kullanın . 20 Şubat 2018'de alındı .
  7. ^ 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 .
  8. ^ Caneuse.com'da JSON.parse'ı kullanabilir miyim ? _ _ 20 Şubat 2018'de alındı .
  9. ^ ( 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."
  10. ^ JQuery.getJSON , jQuery üzerinde . _ _ 20 Şubat 2018'de alındı .
    "Bir GET HTTP isteği kullanarak sunucudan JSON kodlu verileri yükleyin"
  11. ^ XMLHttpRequest'i caneuse.com'da kullanabilir miyim ? _ _ 20 Şubat 2018'de alındı .
  12. ^ Douglas Crockford, JSONRequest , json.org , 17 Nisan 2006. Erişim tarihi: 20 Şubat 2018 .

İlgili öğeler

Diğer projeler

Dış bağlantılar

  • ( TR ) Resmi site , json.org adresinde . Vikiveri'de düzenle
  • Json ileilgili İtalyan içgörü sitesi, json.it üzerinde.
  • JSON biçimlendirici , jsonformatter.org adresinde .
  • JSON görüntüleyici , codebeautify.org'da .