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

modificare

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": "ana.popescu@email.com"
    },
    {
      "Tip": "Telefon",
      "Valoare": "+40 123 456 789"
    }
  ]
}

Tipuri de dată

modificare

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

modificare

JSON și AJAX

modificare


Securitate

modificare

Comparație cu alte formate

modificare

Vezi și

modificare

"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: ionbarbu@yahoo.com, 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>
				ionbarbu@yahoo.com
			</email>
			<telephone>
				0359454545
			</telephone>
			<address>
				Oradea, strada Independetei nr 25
			</address>
		</person>	
În JSON, reprezentarea este următoarea:
	{
		“name”: “Ion Barbu”,
		“email”: “ionbarbu@yahoo.com”,
		“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

modificare


Legături externe

modificare