Zápis objektů JavaScript
| JSON | |
|---|---|
| Rozšíření | .json
|
| MIME typ | application/json
|
| Chlap | Výměna dat |
| Rozšíření | JavaScript |
| Standard | RFC 4627 |
| Otevřený formát ? | Ano |
| webová stránka | json.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 (
trueafalse); - 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ů má 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]
- Internet Explorer starší než verze 8
- Mozilla Firefox starší než verze 3.5
- Safari před verzí 4
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]
- Mozilla Firefox 3.5 ( 2009 )
- Google Chrome 7 ( 2010 )
- Safari 5 ( 2010 )
- Internet Explorer 10 ( 2012 )
- Safari a Google Chrome pro iOS 5.1 ( 2012 )
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
- ^ 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."
- ^ ( 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) .
- ^ a b JSON.parse ( ) vs. eval na stackoverflow.com . Staženo 20. února 2018 .
- ^ Algoritmus kódování aplikace / json na W3C .
- ^ JSON JavaScript Object Notation , na Yahoo! , 19. července 2005. Staženo 16. dubna 2015 .
- ^ Použijte XMLHttpRequest na developer.mozilla.org . Staženo 20. února 2018 .
- ^ 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 .
- ^ Mohu použít JSON.parse na caneuse.com . _ Staženo 20. února 2018 .
- ^ ( 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."
- ^ JQuery.getJSON , na jQuery . _ _ Staženo 20. února 2018 ."Načíst data kódovaná JSON ze serveru pomocí požadavku GET HTTP"
- ^ Mohu použít XMLHttpRequest na caneuse.com . _ Staženo 20. února 2018 .
- ^ Douglas Crockford, JSONRequest , json.org , 17. dubna 2006. Staženo 20. února 2018 .
Související položky
Další projekty
Wikimedia Commons obsahuje obrázky nebo jiné soubory na JSON
Externí odkazy
- ( EN ) Oficiální stránky na json.org .
- Italský web s postřehy o Json ,na json.it.
- Formátovač JSON na adrese jsonformatter.org .
- Prohlížeč JSON na codebeautify.org .