json 1.robotics.ucv.ro/carti/mtsa/current/json.pdf · familiar pentru majoritatea programatorilor,...
Post on 22-Jan-2020
15 Views
Preview:
TRANSCRIPT
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
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.) .
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.:
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:
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:
Î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.
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.
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.
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
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.
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.
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 .
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.
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.
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
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.
top related