JSON

Acest articol sau această secțiune nu este în formatul standard.
Ștergeți eticheta la încheierea standardizării.
Tonul acestui articol sau al acestei secțiuni este nepotrivit pentru o enciclopedie.
Puteți contribui la îmbunătățirea lui sau sugera modificările necesare în pagina de discuție.
Acest articol sau această secțiune are bibliografia incompletă sau inexistentă.
Puteți contribui prin adăugarea de referințe în vederea susținerii bibliografice a afirmațiilor pe care le conține.

JSON este un acronim în limba engleză pentru JavaScript Object Notation, și este un format de reprezentare și interschimb de date între aplicații informatice. Este un format text, inteligibil pentru oameni, utilizat pentru reprezentarea obiectelor și a altor structuri de date și este folosit în special pentru a transmite date structurate prin rețea, procesul purtând numele de serializare. JSON este alternativa mai simplă, mai facilă decât limbajul XML. Eleganța formatului JSON provine din faptul că este un subset al limbajului JavaScript (ECMA-262 3rd Edition) , fiind utilizat alături de acest limbaj. Formatul JSON a fost creat de Douglas Crockford și standardizat prin RFC 4627. Tipul de media pe care trebuie să îl transmită un document JSON este application/json. Extensia fișierelor JSON este .json.

Tipuri de date, sintaxă și exemple

Exemplul de mai jos prezintă o posibilă reprezentare în JSON a unei persoane fictive.

{
  "Nume": "Popescu",
  "Prenume": "Ana",
  "Varsta": 30,
  "Sex": "Feminin",
  "Adresa": {
    "Strada": "Strada Mihai Eminescu",
    "Numar": 123,
    "Oras": "Bucuresti",
    "CodPostal": "010123"
  },
  "Contacte": [
    {
      "Tip": "Email",
      "Valoare": "[email protected]"
    },
    {
      "Tip": "Telefon",
      "Valoare": "+40 123 456 789"
    }
  ]
}

Tipuri de dată

JSON are patru tipuri de bază. Acestea sunt:

Numar: un numar zecimal, pozitiv sau negativ, care poate conține o parte fracțională sau poate folosi notație exponențială E, dar nu poate include non-numere precum NaN. Acest lucru se intamplă deoarece formatul nu face distincție între numere întregi și numere cu virgulă mobilă. JavaScript folosește formatul de virgulă mobilă dublă-precizie IEEE-754 pentru toate valorile sale numerice, dar alte limbaje care implementează JSON pot codifica numere diferit.

Boolen: valorile pot fi true sau false

Șir de caractere : o secvență ce conține zero sau mai multe caractere Unicode. Șirurile sunt delimitate de ghilimele duble și suportă o sintaxă de escapare cu bară oblică inversă.

Tablou: o listă ordonată ce conține zero sau mai multe elemente, fiecare dintre ele putând fi de orice tip. Tablourile folosesc notația parantezelor pătrate cu elemente separate prin virgulă.

Obiect: o colecție ce conține perechi nume-valoare, unde numele (numit si key) sunt șiruri de caractere. Obiectele sunt delimitate de acolade și utilizează virgule pentru a separa fiecare pereche, în cadrul fiecărei perechi caracterul : separă cheia sau numele de valoarea sa.

null: o valoare goală, utilizând cuvântul null

Schema JSON

 Această secțiune este un ciot. Puteți ajuta Wikipedia prin completarea sa !

JSON și AJAX

 Această secțiune este un ciot. Puteți ajuta Wikipedia prin completarea sa !


Securitate

 Această secțiune este un ciot. Puteți ajuta Wikipedia prin completarea sa !

Comparație cu alte formate

 Această secțiune este un ciot. Puteți ajuta Wikipedia prin completarea sa !

Vezi și

  • JSONP
  • XML

"XML reprezintă standardul de interschimbare a datelor, însă nu întotdeauna e cea mai bună soluție. Se spune de multe ori, pe bună dreptate, că XML este un format prea „vorbăreț”. Prea multă metadata este folosită pentru a reprezenta o cantitate mică de date utile. Designerii XML spun că au luat această decizie având motive foarte bune. Avantajele acestui format sunt evidente: formatul este ușor de citit și înțeles atât de oameni și de calculatoare, iar dezavantajul spațiului este unul relativ, deoarece necesitățile de a avea o dimensiune cât mai mică devin din ce în ce mai neînsemnate odată cu avansul tehnologic.

Însă JSON a arătat că se poate trimite aceeași cantitate de date utile folosindu-se un „pachet” mai puțin voluminos. Un alt dezavantaj XML este faptul că are nevoie de analizoare destul de complexe pentru a-l parcurge și manipula. În JavaScript , dacă folosim date în format XML trebuie să folosim DOM pentru a naviga printre date, ceea ce uneori poate fi un procedeu greoi și încet. Tot JSON oferă o alternativă mai avantajoasă.

JSON (JavaScript Object Notation) este un format de reprezentare și interschimbare a datelor. Este un format text, inteligibil pentru oameni, utilizat pentru reprezentarea obiectelor și a altor structuri de date și este folosit în special pentru a transmite date structurate prin rețea, procesul purtând numele de serializare. JSON este alternativa mai simplă, mai facilă a XML-ului în procesul de transmitere a datelor. Eleganța formatului JSON provine din faptul că este un subset al limbajului JavaScript , fiind utilizat alături de acest limbaj.

Pentru a face o comparație cu XML să considerăm următoarele date reprezentate în ambele formate: nume: Ion Barbu, email: [email protected], telefon: 0359454545, adresa: Oradea, strada Independentei nr 25. În XML, datele se reprezintă în felul următor:

	<?xml version='1.0' encoding='UTF-8'?>
		<person>
			<name>
				Ion Barbu
			</name>
			<email>
				[email protected]
			</email>
			<telephone>
				0359454545
			</telephone>
			<address>
				Oradea, strada Independetei nr 25
			</address>
		</person>	
În JSON, reprezentarea este următoarea:
	{
		“name”: “Ion Barbu”,
		“email”: “[email protected]”,
		“telephone”: “0359454545”,
		“address”: “Oradea, strada Independentei nr 25”
}

Se poate vedea că JSON, asemenea XML folosește o structură de date încuibate pentru reprezentare. Tot la fel ca XML-ul este un format text, codarea fiind unicode [17]. Din punct de vedere al inteligibilității este asemănător XML-ului: poate fi citit destul de ușor de către oameni. Diferența cea mai vizibilă este dimensiunea; JSON folosește mult mai puțină redundanță în reprezentarea datelor. În plus simplitatea formatului JSON, bazat pe JavaScript îl face ideal pentru utilizarea împreună cu acest limbaj. Dar JSON nu se limitează doar la JavaScript . Popularitatea câștigată într-un timp scurt, datorită avantajelor sale, a făcut să se construiască implementări de analizoare JSON în aproape toate limbajele de programare existente, de la C++, C#, Java, până la limbaje mai exotice ca Limbo, Ruby, Smalltalk etc. Din acest motiv, JSON a devenit un foarte util instrument de transfer de date între limbaje diferite, cel mai bun exemplu fiind AJAX. Transmiterea de informații asincron între limbajul de pe server și cel de pe partea de client este acum mai facilă ca în cazul folosirii XML. JSON este un subset al limbajului JavaScript . Este construit în principiu din două structuri [19]:

  • Obiecte. Obiectele JSON sunt perechi nume – valoare. Obiectele JSON pot fi de diferite tipuri, de la tipuri primitive de date: numere, string, boolean, până la structuri complexe
  • O listă ordonată de valori. Acestea sunt vectorii JSON

Pentru că este derivat din JavaScript , se poate aplica funcția JavaScript eval() pentru a transfera o structură JSON într-un obiect JavaScript . Deși posibil, aceasta nu este o practică recomandată, deoarece utilizarea funcției eval() poate duce la probleme de securitate. O metodă mult mai sigură este folosirea de analizoare de JSON scrise în JavaScript . Un alt avantaj JSON în competiția cu XML este viteza. Fiind un format mai simplu, analizoarele JSON sunt mai simplu de construit și evident mai rapide. Viteza este deosebit de importantă în aplicațiile AJAX, iar deoarece JSON se pretează foarte bine pentru interschimbarea de date prin XMLHttpRequest, acest format devine din ce în ce mai popular în dezvoltarea aplicațiilor Web 2.0. Dacă sunteți sigur că datele transmise de pe server sunt sigure, puteți folosi pe partea ce client funcția eval(), ceea ce mărește și mai mult viteza de procesare a datelor."

Referințe


Legături externe

  • Pagina oficială (engleză)
  • JSON pentru formatarea și validator Arhivat în , la Wayback Machine. (engleză)
  • application/json RFC (engleză)