close

JavaScript-objektnotation

Hoppa till navigering Hoppa till sökning
JSON
JSON vektor logo.svg
Förlängning.json
MIME-typapplication/json
KilleDatautbyte
Förlängning avJavaScript
StandardRFC 4627
Öppna format ?Ja
Hemsidajson.org

Inom datavetenskap , inom området webbprogrammering , är JSON (uttalas: ˈdʒeɪ.sɑn), akronym för JavaScript Object Notation , ett format som är lämpligt för att utbyta data mellan klient-/ serverapplikationer . [1]

Den är baserad på JavaScript Standard ECMA-262 3rd edition (december 1999), men är oberoende av den. Det används i AJAX som ett alternativ till XML / XSLT . [2]

Funktioner

Enkelheten med JSON har gjort den snabb att använda, särskilt i AJAX- programmering . Dess användning genom JavaScript är särskilt enkel, i själva verket kan tolken tolka en sträng som representerar ett giltigt innehåll genom funktionen . [3] Detta gjorde det snabbt mycket populärt på grund av spridningen av JavaScript-programmering i webbens värld . JSON.parse()

Datatyperna som stöds av detta format är:

  • booleaner ( trueoch false);
  • heltal, flyttalstal ;
  • strängar som omges av dubbla citattecken ( ");
  • arrayer (ordnade sekvenser av värden, separerade med kommatecken och omgivna av hakparenteser []);
  • associativa arrayer (sekvenser av nyckel-värdepar separerade med kommatecken inneslutna i klammerparenteser);
  • null.

De flesta programmeringsspråk har ett typsystem som är mycket likt det som definieras av JSON, för vilket många projekt har skapats som tillåter användning av JSON med andra språk som till exempel: ActionScript , C , C # , Adobe ColdFusion , Vanlig LISP , Delphi , E , Erlang , Java , JavaScript , Lua , ML , Objective Caml , Perl , PHP , Python , REBOL , Ruby och Rust .

En JSON- strömContent-Type: application/json bör ha en HTTP-header . [4]

En av de tidiga användare av JSON är Yahoo! , sedan 2005. [5]

Relation till andra märkningsspråk

JSON är ett datautbytesformat och jämförs ofta med XML som är ett märkningsspråk . Båda har inte ett binärt datarepresentationssystem , så det är upp till programmeraren att anta lämpliga konventioner (t.ex. Base64 ) för att konvertera binär data till textform.

Några av begränsningarna för JSON täcks av YAML .

Format

Följande exempel representerar data från en hypotetisk person i JSON-format:

{ 
	"name" :  "John" , 
	"surname" :  "Rossi" , 
	"active" :  true , 
	"favoriteNumber" :  42 , 
	"birthday" :  { 
		"day" :  1 , 
		"month" :  1 , 
		"year" :  2000 
	}, 
	"languages" :  [  "it" ,  "en"  ] 
}

Använder

I JavaScript

Här är ett enkelt exempel på en AJAX- förfrågan i JavaScript, till en URL som svarar med JSON-data. [6]

var  httpRequest  =  new  XMLHttpRequest ();

// 
httpBegär återuppringning . addEventListener (  'load' ,  function  ()  { 
	// parsifiering av svaret (antas vara i JSON-format) 
	var  data  =  JSON . parse (  this . responseText  );

	// gör något med 
	konsoldata . log (  datum  ); 
}  );

// initiering och skicka 
httpRequest . öppen (  'GET' ,  'https://it.wikipedia.org/w/api.php?action=query&prop=info&titles=Pagina+principale&format=json'  ); 
httpRequest . skicka ();

Mobila applikationer

För att få back-end att kommunicera med mobilapplikationen är det möjligt att skicka data via HTTP - protokollet i JSON-format [7] .

Support

I JavaScript

Bland webbläsarna utan stöd för att JSON.parse()nämna några versioner, främst före 2009 , i alfabetisk ordning: [8]

Ett stort antal bibliotek gjorde det enkelt att använda JSON-formatet för att göra Ajax-förfrågningar. JQuery och AngularJS nämns . [9] [10]

Historiskt har det skett ett urskillningslöst antagande av metoden eval()istället för JSON.parse()eftersom dessa två metoder uppenbarligen är utbytbara. Metoden eval()ger dock inget skydd mot godtycklig input och kan leda till allvarliga sårbarheter. [3]

XMLHttpRequest- stöd citeras i kronologisk ordning: [11]

Andra stödjande metoder

Det finns andra föråldrade sätt att få JSON- strömmar , till exempel genom att använda elementet <iframe>eller formuläret som <form action="url_to_cgi_script" target="name_of_hidden_iframe">. Dessa tillvägagångssätt användes i stor utsträckning innan omfattande XMLHTTPRequest-objektstöd.

Taggen kan också användas för att hämta JSON-data . <script> Detta gör det möjligt att övervinna vissa begränsningar som uppstår med användningen av XMLHTTPRequest men på bekostnad av säkerheten. [12]

Anteckningar

  1. ^ Introducerar JSONJSON . _ _ Hämtad 16 april 2015 .
    «JSON (JavaScript Object Notation) är ett lättviktsformat för datautbyte. Det är lätt för människor att läsa och skriva. Det är lätt för maskiner att analysera och generera."
  2. ^ ( EN ) Final draft Standard ECMA-262 edition 5.1, March 2011 (Rev. 6) - Ecma 262 ( PDF ), on ECMA International , March 2011. Hämtad 16 april 2015 (arkiverad från originalet 12 april 2015) .
  3. ^ a b JSON.parse ( ) vs. eval , på stackoverflow.com . Hämtad 20 februari 2018 .
  4. ^ Program / json- kodningsalgoritmen på W3C .
  5. ^ JSON JavaScript Object Notation , Yahoo! , 19 juli 2005. Hämtad 16 april 2015 .
  6. ^ Använd XMLHttpRequest , på developer.mozilla.org . Hämtad 20 februari 2018 .
  7. ^ Hur man bygger plattformsoberoende mobilappar utan att använda något annat än en JSON-uppmärkning , på freeCodeCamp.org , 12 februari 2017. Hämtad 17 oktober 2020 .
  8. ^ Kan jag använda JSON.parse , på caneuse.com . Hämtad 20 februari 2018 .
  9. ^ ( EN ) $ http , på AngularJS . Hämtad 20 februari 2018 .
    "$ http-tjänsten är en AngularJS-kärntjänst som underlättar kommunikation med fjärranslutna HTTP-servrar via webbläsarens XMLHttpRequest-objekt eller via JSONP."
  10. ^ JQuery.getJSON , jQuery . _ _ Hämtad 20 februari 2018 .
    "Ladda JSON-kodad data från servern med en GET HTTP-begäran"
  11. ^ Kan jag använda XMLHttpRequest , på caneuse.com . Hämtad 20 februari 2018 .
  12. ^ Douglas Crockford, JSONRequest , json.org , 17 april 2006. Hämtad 20 februari 2018 .

Relaterade artiklar

Andra projekt

Externa länkar