Notare obiect JavaScript
JSON | |
---|---|
Extensie | .json |
Tip MIME | application/json |
Tip | Schimb de date |
Extensie a | JavaScript |
Standard | RFC 4627 |
Formatul deschis ? | da |
Site-ul web | json.org |
În informatică , în domeniul programării web , JSON (pronunțat: dʒeɪ.sɑn), acronim pentru JavaScript Object Notation, este un format adecvat pentru schimbul de date între client / server de aplicații . [1]
Se bazează pe standardul JavaScript ECMA-262 a treia ediție (decembrie 1999), dar este independent de acesta. Este utilizat în AJAX ca alternativă la XML / XSLT . [2]
Caracteristici
Simplitatea JSON a făcut ca utilizarea sa să fie rapidă mai ales în programarea AJAX . Utilizarea acestuia prin JavaScript este deosebit de simplă, de fapt interpretul este capabil să- l analizeze folosind funcția JSON.parse()
. [3] Acest lucru a făcut-o rapid populară datorită răspândirii programării JavaScript în lumea web .
Tipurile de date acceptate de acest format sunt:
- booleeni (
true
șifalse
); - numere întregi, numere în virgulă mobilă ;
- șiruri încadrate de ghilimele duble (
"
); - tablouri (secvențe ordonate de valori, separate prin virgule și închise între paranteze drepte
[]
); - tablouri asociative (secvențe de perechi cheie-valoare separate prin virgule închise între paranteze);
-
null
.
Majoritatea limbajelor de programare au un tip de sistem foarte similar cu cel definit de JSON pentru care s-au născut multe proiecte care permit utilizarea JSON cu alte limbaje precum, de exemplu: ActionScript , C , C # , Adobe ColdFusion , Common LISP , Delphi , E , Erlang , Java , JavaScript , Lua , ML , Objective Caml , Perl , PHP , Python , REBOL , Ruby și Rust .
Un flux JSON ar trebui să aibă un antet HTTP Content-Type: application/json
. [4]
Unul dintre primii adoptatori ai JSON este Yahoo! , din 2005. [5]
Relație cu alte limbaje de marcare
JSON este un format de schimb de date și este adesea comparat cu XML, care este un limbaj de markup . Ambele nu au un sistem binar de reprezentare a datelor, deci revine programatorului să adopte convenții adecvate (de exemplu, Base64 ) pentru a converti datele binare în formă textuală.
Unele dintre limitările JSON sunt acoperite de YAML . [ fără sursă ]
Format
Următorul exemplu reprezintă datele unei persoane ipotetice în format JSON:
{
"nume" : "Mario" ,
„prenume” : „Rossi” ,
„activ” : adevărat ,
„Număr favorit” : 42 ,
„ziua de naștere” : {
„zi” : 1 ,
„lună” : 1 ,
„an” : 2000
},
"limbi" : [ "it" , "en" ]
}
Utilizări
În JavaScript
Mai jos este un exemplu simplu de solicitare AJAX în JavaScript, la o adresă URL care răspunde cu date JSON. [6]
var httpRequest = new XMLHttpRequest ();
// suna inapoi
httpCerere . addEventListener ( 'încărcare' , funcție () {
// parsificarea răspunsului (presupus a fi în format JSON)
var date = JSON . parse ( this . responseText );
// faceți ceva cu datele
consolă . jurnal ( data );
} );
// inițializare și trimitere
httpCerere . open ( 'GET' , 'https://it.wikipedia.org/w/api.php?action=query&prop=info&titles=Pagina+principale&format=json' );
httpCerere . send ();
Aplicatii mobile
Pentru a face back-endul să comunice cu aplicația mobilă, este posibil să trimiteți date prin protocolul HTTP în format JSON [7] .
A sustine
În JavaScript
Browserele fără JSON.parse()
includ unele versiuni, în principal înainte de 2009 , în ordine alfabetică: [8]
- Internet Explorer anterior versiunii 8
- Mozilla Firefox înainte de versiunea 3.5
- Safari înainte de versiunea 4
Un număr mare de biblioteci a facilitat utilizarea formatului JSON pentru a face cereri Ajax. Sunt menționate JQuery și AngularJS . [9] [10]
Din punct de vedere istoric, a existat adoptarea indiscriminată a metodei eval()
în loc de JSON.parse()
deoarece aceste două metode sunt aparent interschimbabile. Cu toate acestea, metoda eval()
nu oferă nicio protecție împotriva intrării arbitrare și poate duce la vulnerabilități grave. [3]
Suportul XMLHttpRequest este citat în ordine cronologică: [11]
- Mozilla Firefox 3.5 ( 2009 )
- Google Chrome 7 ( 2010 )
- Safari 5 ( 2010 )
- Internet Explorer 10 ( 2012 )
- Safari și Google Chrome pentru iOS 5.1 ( 2012 )
Alte metodologii de sprijin
Există alte modalități învechite de a obține fluxuri JSON, de exemplu folosind elementul <iframe>
sau formulare precum <form action="url_to_cgi_script" target="name_of_hidden_iframe">
. [ neclar ] Aceste abordări au fost utilizate pe scară largă înainte de suportul XMLHTTPRequest pentru obiect.
<script>
tag - ul poate fi , de asemenea , folosite pentru a obține date JSON. [ neclar ] Acest lucru permite depășirea unor limitări care apar odată cu utilizarea XMLHTTPRequest, dar în detrimentul securității. [12]
Notă
- ^ (EN) Vă prezentăm JSON , pe JSON. Adus la 16 aprilie 2015 .
«JSON (JavaScript Object Notation) este un format ușor de schimb de date. Pentru oameni este ușor să citească și să scrie. Este ușor pentru mașini să analizeze și să genereze. " . - ^ ( EN ) Proiectul final al Standardului ECMA-262 ediția 5.1, martie 2011 (Rev. 6) - Ecma 262 ( PDF ), pe ECMA Internațional , martie 2011. Accesat la 16 aprilie 2015 (arhivat din original la 12 aprilie 2015) .
- ^ A b (EN) JSON.parse () vs. eval , la stackoverflow.com . Adus la 20 februarie 2018 .
- ^ (EN) Algoritmul de codificare aplicație / json , al W3C .
- ^ (EN) JSON JavaScript Object Notation , pe Yahoo! , 19 iulie 2005. Adus 16 aprilie 2015 .
- ^ Utilizați XMLHttpRequest , la developer.mozilla.org . Adus la 20 februarie 2018 .
- ^ (RO) Cum să construiți aplicații mobile multiplataforma folosind nimic mai mult decât un markup JSON pe freeCodeCamp.org, 12 februarie 2017. Adus pe 17 octombrie 2020.
- ^ (EN) Pot folosi JSON.parse , pe caniuse.com. Adus la 20 februarie 2018 .
- ^ ( EN ) $ http , pe AngularJS . Adus la 20 februarie 2018 .
"Serviciul $ http este un serviciu de bază AngularJS care facilitează comunicarea cu serverele HTTP la distanță prin intermediul obiectului XMLHttpRequest al browserului sau prin JSONP." . - ^ (EN) jQuery.getJSON , pe jQuery . Adus la 20 februarie 2018 .
„Încărcați date codificate JSON de pe server utilizând o solicitare GET HTTP” . - ^ (EN) Pot folosi XMLHttpRequest , pe caniuse.com. Adus la 20 februarie 2018 .
- ^ (EN) Douglas Crockford, JSONRequest pe json.org, 17 aprilie 2006. Accesat la 20 februarie 2018.
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe JSON
linkuri externe
- ( RO ) Site oficial , la json.org .
- ( FR ) Site oficial , la json.org .
- Site-ul oficial , la json.org .
- Site-ul italian de informații despre Json , pe json.it.
- JSON formatter , la jsonformatter.org .
- Vizualizator JSON , pe codebeautify.org .
Controlul autorității | LCCN (EN) sh2014000515 · GND (DE) 1105592812 |
---|