JavaScript-objektnotation
| JSON | |
|---|---|
| Förlängning | .json
|
| MIME-typ | application/json
|
| Kille | Datautbyte |
| Förlängning av | JavaScript |
| Standard | RFC 4627 |
| Öppna format ? | Ja |
| Hemsida | json.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 (
trueochfalse); - 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]
- Internet Explorer tidigare än version 8
- Mozilla Firefox före version 3.5
- Safari före version 4
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]
- Mozilla Firefox 3.5 ( 2009 )
- Google Chrome 7 ( 2010 )
- Safari 5 ( 2010 )
- Internet Explorer 10 ( 2012 )
- Safari och Google Chrome för iOS 5.1 ( 2012 )
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
- ^ Introducerar JSON på JSON . _ _ 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."
- ^ ( 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) .
- ^ a b JSON.parse ( ) vs. eval , på stackoverflow.com . Hämtad 20 februari 2018 .
- ^ Program / json- kodningsalgoritmen på W3C .
- ^ JSON JavaScript Object Notation , på Yahoo! , 19 juli 2005. Hämtad 16 april 2015 .
- ^ Använd XMLHttpRequest , på developer.mozilla.org . Hämtad 20 februari 2018 .
- ^ 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 .
- ^ Kan jag använda JSON.parse , på caneuse.com . Hämtad 20 februari 2018 .
- ^ ( 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."
- ^ JQuery.getJSON , på jQuery . _ _ Hämtad 20 februari 2018 ."Ladda JSON-kodad data från servern med en GET HTTP-begäran"
- ^ Kan jag använda XMLHttpRequest , på caneuse.com . Hämtad 20 februari 2018 .
- ^ Douglas Crockford, JSONRequest , json.org , 17 april 2006. Hämtad 20 februari 2018 .
Relaterade artiklar
Andra projekt
Wikimedia Commons innehåller bilder eller andra filer på JSON
Externa länkar
- ( EN ) Officiell webbplats , på json.org .
- Italiensk webbplats med insikter om Json ,på json.it.
- JSON formatter , på jsonformatter.org .
- JSON viewer , på codebeautify.org .