json 1.robotics.ucv.ro/carti/mtsa/current/json.pdf · familiar pentru majoritatea programatorilor,...

16
JSON 1.Ce este JSON și cum îl utilizăm? JSON este un acronim în limba engleză pentru JavaScript Object Notation. Cu ajutorul acestui format text, se pot interschimba date între aplicații informatice. Este utilizat pentru reprezentarea obiectelor și a altor structuri de date, fiind folosit în special pentru a transmite date structurate prin rețea, acest proces purtând numele de serializare. Poate facilita schimbul de date între majoritatea, dacă nu toate limbile de programare. De fapt, JSON folosește convenții comune de programare, ceea ce îl face familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford și standardizat prin RFC 4627. Este varianta mai simplă a limbajului XML și eleganța lui provine din faptul că are la bază limbajul JavaScript. Tipul de media pe care trebuie să îl transmită un document JSON este application/json, iar extensia fișierelor JSON este .json . JSON este un format uman și ușor de citit de către mașină. Cu alte cuvinte, un document JSON este structurat într-un mod care poate fi citit cu ușurință de un program de calculator, în timp ce un om poate de obicei să citească rapid un fișier JSON și să înțeleagă datele pe care le conține. Exemplu 1.1 Document artists.json

Upload: others

Post on 22-Jan-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

JSON

1.Ce este JSON și cum îl utilizăm?

JSON este un acronim în limba engleză pentru JavaScript Object Notation. Cu

ajutorul acestui format text, se pot interschimba date între aplicații informatice. Este

utilizat pentru reprezentarea obiectelor și a altor structuri de date, fiind folosit în

special pentru a transmite date structurate prin rețea, acest proces purtând numele de

serializare. Poate facilita schimbul de date între majoritatea, dacă nu toate limbile de

programare. De fapt, JSON folosește convenții comune de programare, ceea ce îl face

familiar pentru majoritatea programatorilor, indiferent de limba / limbile

alese. Formatul JSON a fost creat de Douglas Crockford și standardizat prin RFC

4627.

Este varianta mai simplă a limbajului XML și eleganța lui provine din faptul că

are la bază limbajul JavaScript. Tipul de media pe care trebuie să îl transmită un

document JSON este application/json, iar extensia fișierelor JSON este .json .

JSON este un format uman și ușor de citit de către mașină. Cu alte cuvinte, un

document JSON este structurat într-un mod care poate fi citit cu ușurință de un

program de calculator, în timp ce un om poate de obicei să citească rapid un fișier

JSON și să înțeleagă datele pe care le conține.

Exemplu 1.1 Document artists.json

Page 2: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

2. Cum să folosești JSON cu Javascript?

JSON are la bază JavaScript, aceasta suportându-l nativ. JSON se bazează pe un

subset de JavaScript, iar un document JSON poate fi ușor convertit într-o valoare

JavaScript.

Vom folosi JavaScript pentru a prelua datele JSON de mai sus, pentru a le

formata cu etichete HTML si a le trimite la documentul HTML. Iată codul:

În acest exemplu, extragem datele JSON formatate folosind innerHTML.De

asemenea, plasăm JavaScript în interiorul unei funcții, apoi apelăm această funcție

odată ce pagina se încarcă (folosind window.onload.) .

Page 3: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

2.1 Conversia unui text JSON într-un obiect JavaScript

O utilizare obișnuită a JSON este de a citi date de la un server web și de a afișa

datele într-o pagină Web. Pentru simplificare, acest lucru poate fi demonstrat folosind

un șir ca intrare. Mai întâi, creați un șir de JavaScript care conține sintaxa JSON:

Apoi, utilizați funcția JavaScript built-in JSON.parse () pentru a converti șirul

într-un obiect JavaScript:

În cele din urmă, utilizați noul obiect JavaScript în pagina dvs.:

Page 4: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

2.2 Ce face functia JSON.parse()?

Codul din cadrul unui șir ce conține o structură de date în format JSON poate fi

în siguranță compilat și transformat în obiect funcțional în JavaScript cu JSON.parse().

La ce ar folosi aceasta?

Acest lucru este destul de util când datele sunt primite în JavaScript de la altă aplicație,

în general sub forma unui șir text. De exemplu, de pe server de la PHP, prin Ajax.

Șirul primit, în format JSON, poate conține structura unui Array sau obiect, iar cu

"JSON.parse()" poate fi inclusă în scriptul JS ca și cum a fost definită în el.

Iată un exemplu care prezintă și explică mai bine acest lucru (Explicatiile necesare

sunt in cod).

3. Sintaxa JSON

Un document JSON conține text, paranteze curbate, paranteze pătrate,

coloane, virgule, ghilimele duble și, poate, alte câteva caractere. Sintaxa JSON este

derivată din sintaxa de notare a obiectului JavaScript: între virgule sunt notate

valorile, între acolade obiectele, iar tablourile între parantezele pătrate.

O pereche de nume/ valoare se stochează într-un câmp, între ghilimele,

urmate de două puncte și de o valoare:

Page 5: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Aceste perechi de nume / valoare reflectă structura datelor. Chiar dacă nu

cunoașteți JSON, ar trebui să puteți obține o idee de bază despre structura de date

doar dacă vă uitați la modul în care datele sunt stocate în fișierul JSON de mai sus.

Vestea bună este că micul exemplu acoperă aproape toată sintaxa JSON.

Nu mai e mult de arătat decât să explicăm cum funcționează aceasta.

JSON stochează datele în obiecte și în tabele. Sintaxa JSON reflectă modul

în care acestea sunt definite.

3.1 JSON Objects

Un obiect JSON este un set neordonat de perechi de nume / valoare introduse

între {} (bretele curbate). În exemplul următor, numele artistului este un nume, iar

valoarea lui Deep Purple.

Un obiect poate conține zero sau mai multe perechi de nume / valoare. Mai

multe perechi de nume / valoare sunt separate de o virgulă. Deci, următoarele

sunt toate obiectele valabile:

Page 6: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

În JSON, un nume este un șir. Valoarea sa poate fi un obiect, matrice, număr,

șir, adevărat, fals sau null. În exemplele de mai sus, valorile sunt toate șiruri

de caractere.

3.2 JSON Arrays

Un array JSON este o colecție ordonată de valori. Vă permite să furnizați o

listă de valori.Acesta se scrie între paranteze drepte. Valorile sale sunt separate de

virgulă.

3.3 Spațiul alb

Puteți utiliza spațiul alb pentru a face documentele JSON mai ușor de citit.

De fapt, aceasta este convenția comună cu JSON și cele mai multe (dacă nu toate)

limbi de programare.

Aveți posibilitatea să utilizați spații, caractere, feed-uri de linie sau

caractere noi de linie pentru a vă ajuta să citiți fișierele JSON.

Adăugarea spațiilor libere nu are niciun impact asupra datelor. Cu toate acestea,

dacă adăugați un spațiu alb într-un șir între ghilimele, acesta va schimba datele.

Page 7: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

3.4 Date încorporate

Cele mai multe fișiere JSON conțin o mulțime de date imbricate. Acest

lucru este determinat de structura datelor. De exemplu, am putea avea o serie de

artiști. Numele este artist și valoarea este o matrice care conține detalii ale artiștilor

Fiecare artist poate avea o serie de albume, fiecare cu diferite perechi de nume.

3.5. Tipuri de date JSON

O listă a tuturor tipurilor de date JSON, cu o descriere a fiecăruia. O valoare

JSON poate fi una dintre cele șase tipuri de date:

Şir

Număr

Boolean

Null

Obiect

Array

Aceste tipuri de date sunt descrise mai jos.

Page 8: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Tipul de dată Descriere

Șir Orice secvență de caractere Unicode,

inserată între ghilimele.

Număr Reprezentat în baza 10. Poate include

cifre între 0 și 9.

Poate fi un număr negativ sau fracție.

Boolean Această valoare poate fi doar True

sau False.

Null

3.6. Structuri

Tipul de dată Descriere

Object Un obiect JSON este un set neordonat de

perechi de nume / valoare introduse între

{}.Un obiect poate conține zero sau mai

multe perechi de nume / valoare. Mai

multe perechi de nume / valoare sunt

separate de o virgulă.

Array Un array JSON este o colecție

ordonată de valori. Vă permite să

furnizați o listă de valori. Un array

JSON se trece între paranteze drepte.

Valorile sale sunt separate de virgulă.

4. Comparație între JSON și XML

Mulți dezvoltatori compară JSON cu XML când creează aplicații care

partajează date între sisteme diferite, în special pe web. Aceasta se transformă

adesea într-un argument "JSON vs XML", deoarece fiecare parte apără formatul

preferat.

Page 9: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Se pare că JSON și XML au scopuri puțin diferite, deci nu este întotdeauna

corect (sau relevant) să spunem că unul este "mai bun" decât celălalt. Depinde de

scop.

Mai întâi, să examinăm un exemplu de document JSON și XML care

conține aceleași date.

Exemplu JSON

Exemplu XML

Page 10: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Fiind bazat pe etichete, XML ar putea fi ușor de învățat pentru cineva care

utilizează limbile de marcare, cum ar fi HTML sau ColdFusion.

Cu toate acestea, o declarație similară ar putea fi spusă în favoarea JSON

pentru oricine se simte confortabil în programarea bazată pe JavaScript sau C.

De asemenea, simplitatea ambelor limbi face ca acest lucru să nu fie o

problemă. Oricine are dificultăți în înțelegerea sintaxei XML sau a sintaxei JSON

este puțin probabil să fie confortabil cu orice limbaj de programare sau markup.

JSON este un subset al limbajului JavaScript , fiind utilizat alături de acest

limbaj, este nativ, deci nu avem nevoie de alte 'mijloace externe'. Este o alternativă

avantajoasă la XML fiind mai compact, și neavând nevoie de biblioteci externe pentru

manipulare.

Cu toate acestea, este mult mai puțin de învățat cu JSON - simplitatea este

una dintre punctele forte ale JSON. XML, pe de altă parte, are reguli privind

sensitive case(se face distincția între literele mari și literele mici), etichetele de

închidere, atributele etc., astfel încât probabil majoritatea oamenilor pot avea

probleme în a învăța XML într-un timp scurt.

Mărimea fișierului ar putea reprezenta, de asemenea, un avantaj pentru

JSON.

XML necesită etichete de închidere (cu excepția cazului în care este vorba

de o etichetă de auto-închidere) și va avea cel mai probabil o dimensiune mai mare

a fișierului. Acest lucru ar putea afecta cu ușurință timpul necesar pentru transmiter

ea fișierului (mai ales dacă este un fișier mare și dacă acesta este transmis pe

Internet). S-ar putea argumenta, de asemenea, că adăugarea de etichete de închidere

înseamnă mai multă tastare pentru dezvoltatori. În timp ce acest lucru ar putea fi

adevărat în unele cazuri, majoritatea dezvoltatorilor buni folosesc software care

închide automat etichetele pentru ei. Deci asta nu ar reprezenta o problemă pentru

ei.

Un mare avantaj pe care îl are XML peste JSON este reprezentat de

metadate. În XML puteți utiliza atribute pentru stocarea metadatelor. Pot fi plasate

în interiorul unui element pentru a oferi mai multe informații despre acel element.

Page 11: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

De exemplu, puteți face ceva de genul:

Deși ar fi posibilă furnizarea de metadate în JSON, transformând o entitate

într-un obiect, apoi adăugând metadatele ca elemente în obiect, aceasta nu este la

fel de curată ca metoda XML.

Lizibilitatea

Este un alt avantaj pentru XML deoarece browserele tind să afișeze XML

într-un mod care ar putea facilita citirea acestuia. Cititorul poate vedea imediat

structura ierarhică și poate extinde orice element din arbore.

Performanța

Cercetările recente constată că JSON este mai rapid și utilizează mai

puține resurse decât XML. JSON pare să aibă avantajul asupra XML în diferite

teste de performanță.

Scopul aplicațiilor

JSON și XML servesc două scopuri diferite.

JSON este un format de transfer de date. Scopul său este facilitarea schimbului de

date structurat. Realizează acest lucru prin reprezentarea directă a obiectelor, a

rețelelor, numerelor, șirurilor și a booleanelor care sunt adesea prezente în

mediul sursă și destinație.

XML, pe de altă parte, este un limbaj de markup. Scopul XML este marcarea

documentelor. Deși XML poate fi ușor de învățat în scopul schimbului de date,

există multe de învățat dacă doriți să vă familiarizați cu utilizarea limbajului XML

ca limbaj de markup.

Page 12: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Concluzie

În concluzie,atât JSON cât și XML sunt potrivite pentru schimbul de date.

Ce utilizați, depinde de situație. JSON cu siguranță pare să aibă avantajul în multe

cazuri de utilizare, dar nu este tot timpul așa. Se poate întâmpla ca XML să fie

alegerea potrivită pentru anumite lucruri.

Cu toate acestea, popularitatea JSON este în creștere, și cu siguranță pare

să înlocuiască XML ca formatul de alegere pentru schimbul de date pe web.

De asemenea, acestea nu sunt singurele formate de schimb de date. De

exemplu, există alte formate, cum ar fi Buffer-urile de protocol.

5. Sistemele de gestionare a bazelor de date care suportă JSON.

Acestea sunt : MongoDB, Couchbase, CouchBD și multe altele. Vom

vorbi despre primele 3 .

Page 13: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

5.1. Ce este MongoDB?

MongoDB este o bază de date NoSQL de înaltă performanță, în care

fiecare bază de date are colecții care la rândul ei au documente. Fiecare document

are un număr diferit de câmpuri, mărime, conținut și este stocat într-un format

asemănător JSON (adică Binary JSON). Documentele din MongoDB nu trebuie să

aibă o schemă definită în prealabil. În schimb, câmpurile (adică înregistrările) pot

fi create în timpul deplasării.

Modelul de date disponibil în cadrul programului MongoDB permite

dezvoltatorilor să reprezinte cu ușurință relațiile ierarhice, să stocheze matrice și

alte structuri mai complexe.Această soluție NoSQL vine adesea cu încorporare,

auto-ștergere și replicare la bord pentru o mai bună scalabilitate și disponibilitate

ridicată.

Este, de asemenea, o schemă NoSQL DBMS încrucișată, care în prezent

suportă Windows, Mac, Solaris și diverse distribuții Linux în momentul redactării.

MongoDB este utilizat de unele dintre cele mai mari companii din lume, inclusiv

Facebook, Google, Nokia, MTV Networks, Cisco, Forbes și multe altele.

În spatele scenei, MongoDB stochează documentele JSON într-un format

binar codat numit BSON. BSON extinde JSON prin sprijinirea tipurilor de date

suplimentare și eficientizarea codării și decodificării în limbi diferite.

5.1.1. De ce să alegem MongoDB?

Ca o bază de date de tip NoSQL, MongoDB stochează datele sub forma

unui document. Astfel, MongoDB oferă mai multă flexibilitate.Această bază de

date acceptă căutarea după nume-domeniu, interogări de interval și expresii

regulate. De multe ori oferă interogări pentru a returna câmpurile particulare din

interiorul documentelor.MongoDB oferă indexuri pentru a îmbunătăți performanța

căutării în baza de date NoSQL.

Pentru a oferi o scalabilitate orizontală, MongoDB folosește un sharpening

prin împărțirea datelor în multe dintre aparițiile MongoDB.

Page 14: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

5.1.2. MongoDB Import și export JSON. Exemplu de date

Exportul datelor

În baza de date Mongo, datele sunt exportate într-un format care poate fi

citit de om. Implicit, aceste date exportate sunt în format JSON, dar dezvoltatorii

pot exporta aceleași rezultate și în format CSV. Pentru a exporta baza de date,

dezvoltatorii ar trebui să folosească comanda mongoexport. Această comandă face

un instantaneu al întregii colecții și fie o afișează pe consola de administrare, fie o

plasează în directorul de stocare. Atunci când comanda mongoexport rulează fără

argumentul de intrare gazdă, se conectează pur și simplu la instanța Mongo locală

din portul 27017 și exportează colecția. Iată ce va arăta sintaxa:

Unde:

-Host este un parametru opțional care specifică instanța bazei de date Mongo a

serverului de la distanță;

-Numele de utilizator și - parola sunt parametrii opționali care specifică detaliile de

autentificare ale unui utilizator;

-Db specifică numele bazei de date;

-Collection specifică numele colecției;

-Out specifică calea fișierului de ieșire. Dacă acest lucru nu este specificat,

rezultatul este afișat pe consolă.

Tastați comanda mongoexport pentru a activa exportul de date:

Implicit, comanda mongoexport scrie datele utilizând un document JSON

pentru fiecare document Mongo. Folosind parametrul opțional --jsonArray

modifică ieșirea comenzii mongoexport ca un singur arbore JSON.

Page 15: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

Output file:

Importul datelor

În baza de date Mongo, utilitarul de import importa datele din extensia

JSON sau fișierul CSV creat de comanda mongoexport. Comanda mongoimport

readuce documentele din fișierul JSON în colecția Mongo.

Iată sintaxa:

> mongoimport --host <host_name> --username <user_name> --password <pass

word> --db <database_name> --collection <collection_name> --file <input_file>

- File specifică calea fișierului de intrare. Dacă acest lucru nu este specificat, se

utilizează intrarea standard.

5.2. Ce este Couchbase?

Platforma de date Couchbase include serverul Couchbase și Couchbase

Mobile. Ambele sunt sisteme open source, NoSQL, multi-model, bazate pe

Page 16: JSON 1.robotics.ucv.ro/carti/mtsa/current/JSON.pdf · familiar pentru majoritatea programatorilor, indiferent de limba / limbile alese. Formatul JSON a fost creat de Douglas Crockford

documente care stochează documente JSON. Couchbase se referă la platforma sa

ca prima bază de date a angajamentului din industrie - o nouă clasă de baze de date

care poate accesa date dinamice, la orice scară și pe orice canal sau dispozitiv.

Couchbase (compania) a început ca NorthScale în 2009 și ulterior a fost

redenumită la membrana Incorporated în 2010. Couchbase, Inc. a fost creată

ulterior prin fuziunea dintre Membase și CouchOne în februarie 2011.Clienții

Couchbase includ Amadeus, AT & T, BD (Becton, Dickinson și Compania),

Carrefour, Cisco, Comcast, Disney, DreamWorks Animation, eBay, Marriott,

Neiman Marcus, Tesco, Tommy Hilfiger, Verizon, Wells Fargo și multe altele.

5.3. Ce este CouchDB?

Apache CouchDB este un sistem de gestionare a bazelor de date open

source bazat pe documente care utilizează în mod natural JSON. CouchDB a fost

lansat pentru prima dată în 2005 și a devenit mai târziu un proiect Apache

Software Foundation în 2008.Couch este un acronim pentru un grup de hardware

de mărfuri nesigure.CouchDB este folosit de companii precum Amadeus IT Group,

Credit Suisse, npm și BBC.