Notare obiect JavaScript

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - "Json" se referă aici. Dacă sunteți în căutarea altor semnificații, consultați J Son .
JSON
Logo JSON vector.svg
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 prin intermediul funcției 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 și false );
  • 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 sistem de tipuri 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 adoptarea convențiilor 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]

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]

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ă

  1. ^ (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. " .
  2. ^ ( 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) .
  3. ^ A b (EN) JSON.parse () vs. eval , la stackoverflow.com . Adus la 20 februarie 2018 .
  4. ^ (EN) Algoritmul de codificare aplicație / json , al W3C .
  5. ^ (EN) JSON JavaScript Object Notation , pe Yahoo! , 19 iulie 2005. Adus 16 aprilie 2015 .
  6. ^ Utilizați XMLHttpRequest , la developer.mozilla.org . Adus la 20 februarie 2018 .
  7. ^ (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.
  8. ^ (RO) Pot folosi JSON.parse , pe caniuse.com. Adus la 20 februarie 2018 .
  9. ^ ( 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." .
  10. ^ (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” .
  11. ^ (EN) Pot folosi XMLHttpRequest , pe caniuse.com. Adus la 20 februarie 2018 .
  12. ^ (EN) Douglas Crockford, JSONRequest pe json.org, 17 aprilie 2006. Accesat la 20 februarie 2018.

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh2014000515 · GND (DE) 1105592812