close

Zápis objektů JavaScript

Přejít na navigaci Přejít na hledání
JSON
JSON vektorové logo.svg
Rozšíření.json
MIME typapplication/json
ChlapVýměna dat
RozšířeníJavaScript
StandardRFC 4627
Otevřený formát ?Ano
webová stránkajson.org

V informatice , v oblasti webového programování , je JSON (vyslov: ˈdʒeɪ.sɑn), zkratka pro JavaScript Object Notation , formát vhodný pro výměnu dat mezi aplikacemi klient/server . [1]

Je založen na standardu JavaScript ECMA-262 3. vydání (prosinec 1999), ale je na něm nezávislý. Používá se v AJAX jako alternativa k XML / XSLT . [2]

Funkce

Jednoduchost JSON umožnila rychlé použití zejména v programování AJAX . Jeho použití prostřednictvím JavaScriptu je obzvláště jednoduché, ve skutečnosti je interpret schopen pomocí funkce analyzovat řetězec, který představuje platný obsah JSON.parse(). [3] Toto rychle udělalo to velmi populární kvůli rozšíření JavaScript programování ve světě webu .

Datové typy podporované tímto formátem jsou:

  • booleovské hodnoty ( truea false);
  • celá čísla, čísla s pohyblivou řádovou čárkou ;
  • řetězce uzavřené dvojitými uvozovkami ( ");
  • pole (uspořádané sekvence hodnot, oddělené čárkami a uzavřené v hranatých závorkách []);
  • asociativní pole (sekvence párů klíč-hodnota oddělené čárkami uzavřenými ve složených závorkách);
  • null.

Většina programovacích jazykůtypový systém velmi podobný tomu definovanému JSON, pro který se zrodilo mnoho projektů, které umožňují použití JSON s jinými jazyky, jako jsou například: ActionScript , C , C # , Adobe ColdFusion , Běžné LISP , Delphi , E , Erlang , Java , JavaScript , Lua , ML , Objective Caml , Perl , PHP , Python , REBOL , Ruby a Rust .

Stream JSON by měl mít hlavičku HTTP Content-Type: application/json. [4]

Jedním z prvních uživatelů JSON je Yahoo! , od roku 2005. [5]

Vztah k jiným značkovacím jazykům

JSON je formát pro výměnu dat a je často srovnáván s XML , což je značkovací jazyk . Oba nemají systém binární reprezentace dat , takže je na programátorovi , aby přijal vhodné konvence (např . Base64 ) pro převod binárních dat do textové podoby.

Některá omezení JSON jsou pokryta YAML .

Formát

Následující příklad představuje data hypotetické osoby ve formátu JSON:

{ 
	"jméno" :  "John" , 
	"příjmení" :  "Rossi" , 
	"aktivní" :  true , 
	"favoriteNumber" :  42 , 
	"narozeniny" :  { 
		"den" :  1 , 
		"měsíc" :  1 , 
		"rok" :  2000 
	}, 
	"languages" :  [  "it" ,  "en"  ] 
}

Používá

V JavaScriptu

Zde je jednoduchý příklad požadavku AJAX v JavaScriptu na adresu URL , která odpovídá daty JSON. [6]

var  httpRequest  =  new  XMLHttpRequest ();

// 
httpRequest callback . addEventListener (  'load' ,  function  ()  { 
	// parsifikace odpovědi (předpokládá se, že je ve formátu JSON) 
	var  data  =  JSON . parse (  this . responseText  );

	// udělat něco s daty 
	konzole . log (  datum  ); 
}  );

// inicializace a odeslání 
httpRequest . otevřít (  'GET' ,  'https://it.wikipedia.org/w/api.php?action=query&prop=info&titles=Pagina+principale&format=json'  ); 
httpŽádost . poslat ();

Mobilní aplikace

Aby back-end komunikoval s mobilní aplikací, je možné data posílat protokolem HTTP ve formátu JSON [7] .

Podpora

V JavaScriptu

Mezi prohlížeči bez podpory JSON.parse()zmiňme některé verze, zejména před rokem 2009 , v abecedním pořadí: [8]

Velké množství knihoven usnadnilo použití formátu JSON k vytváření požadavků Ajax. Jsou zmíněny JQuery a AngularJS . [9] [10]

Historicky docházelo k nerozlišujícímu přijímání metody eval()místo toho, JSON.parse()protože tyto dvě metody jsou zjevně zaměnitelné. Tato metoda však eval()neposkytuje žádnou ochranu před libovolným vstupem a může vést k vážným zranitelnostem. [3]

Podpora XMLHttpRequest je citována v chronologickém pořadí: [11]

Další podpůrné metodiky

Existují další zastaralé způsoby, jak získat proudy JSON , například pomocí prvku <iframe>nebo formuláře jako <form action="url_to_cgi_script" target="name_of_hidden_iframe">. Tyto přístupy byly široce používány před rozsáhlou podporou objektů XMLHTTPRequest.

Tag lze také použít k získání dat JSON . <script> To umožňuje překonat některá omezení, která vznikají při použití XMLHTTPRequest, ale na úkor bezpečnosti. [12]

Poznámky

  1. ^ Představujeme JSON na JSON . _ _ Staženo 16. dubna 2015 .
    «JSON (JavaScript Object Notation) je odlehčený formát pro výměnu dat. Pro lidi je snadné číst a psát. Pro stroje je snadné analyzovat a generovat."
  2. ^ ( EN ) Konečný návrh normy ECMA-262, vydání 5.1, březen 2011 (6. revize) - Ecma 262 ( PDF ), na ECMA International , březen 2011. Staženo 16. dubna 2015 (archivováno z originálu 12. dubna 2015) .
  3. ^ a b JSON.parse ( ) vs. eval na stackoverflow.com . Staženo 20. února 2018 .
  4. ^ Algoritmus kódování aplikace / json na W3C .
  5. ^ JSON JavaScript Object Notation , na Yahoo! , 19. července 2005. Staženo 16. dubna 2015 .
  6. ^ Použijte XMLHttpRequest na developer.mozilla.org . Staženo 20. února 2018 .
  7. ^ Jak vytvářet mobilní aplikace pro více platforem pomocí pouze označení JSON , na freeCodeCamp.org , 12. února 2017. Staženo 17. října 2020 .
  8. ^ Mohu použít JSON.parse na caneuse.com . _ Staženo 20. února 2018 .
  9. ^ ( EN ) $ http , na AngularJS . Staženo 20. února 2018 .
    "Služba $ http je základní služba AngularJS, která usnadňuje komunikaci se vzdálenými servery HTTP prostřednictvím objektu XMLHttpRequest prohlížeče nebo prostřednictvím JSONP."
  10. ^ JQuery.getJSON , na jQuery . _ _ Staženo 20. února 2018 .
    "Načíst data kódovaná JSON ze serveru pomocí požadavku GET HTTP"
  11. ^ Mohu použít XMLHttpRequest na caneuse.com . _ Staženo 20. února 2018 .
  12. ^ Douglas Crockford, JSONRequest , json.org , 17. dubna 2006. Staženo 20. února 2018 .

Související položky

Další projekty

Externí odkazy