Cum se configurează smartphone-uri și PC-uri. Portal informativ

Variabila Json. Bazele JSON

Perechi atribut-valoare. Este cel mai comun format de date folosit pentru comunicarea asincronă între browser și server, înlocuind în mare măsură XML (utilizat de AJAX).

JSON este un format de date independent de limbaj care a fost derivat din JavaScript. Din 2017, multe limbaje de programare folosesc cod pentru a genera și analiza date numai în acesta. Numele fișierelor JSON folosesc extensia .json.

Istoria creației

Formatul JSON a fost dezvoltat inițial de Douglas Crockford la începutul anilor 2000, iar ulterior două standarde concurente (RFC 7159 și ECMA-404) l-au definit în 2013. Standardul ECMA descrie doar sintaxa validă, în timp ce RFC acoperă unele dintre elementele de bază ale securității și interoperabilității.

În plus, există RFC 7493, care definește profil limitat cunoscut sub numele de I-JSON (prescurtare de la „Internet JSON”). El caută să depășească unele probleme de comunicare. Fiecare astfel de document este un document JSON valid.

Necesitatea creării acestui format a apărut din necesitatea unui protocol de comunicare real între server și browser, realizat în timp real fără utilizarea de pluginuri (cum ar fi applet-urile Flash sau Java).

Dezvoltare și aplicare

După cum sa menționat, Douglas Crockford, creatorul StateSoftware, a fost pionier și a popularizat formatul JSON. Ulterior, co-fondatorii au convenit să creeze un sistem folosind specificații standard browser și a oferit un strat de abstractizare pentru dezvoltatori pentru a crea aplicații cu o conexiune duplex continuă la un server web. În același timp, a devenit posibilă menținerea a două conexiuni HTTP deschise și procesarea acestora până la timpul standard de funcționare a browserului, dacă nu s-a efectuat niciun schimb de date. Cofondatorii au purtat o discuție pentru masa rotundași a votat pentru denumirea formatului de date JSML sau JSON, precum și pentru a determina tipul de licență prin care noua dezvoltare vor deveni disponibile. Formatul este în prezent open source.

Uz practic

Site-ul web JSON.org a fost lansat în 2002. În decembrie 2005, Yahoo! a început să ofere unele dintre serviciile sale web în acest format. Google a început să folosească feeduri JSON pentru protocolul său web GData abia în decembrie 2006.

Formatul de fișier JSON a fost inițial destinat unui subset al limbajului de scripting JavaScript (în special Standardul ECMA-262 ediția a treia-decembrie) și a fost folosit în mod obișnuit cu acesta. Cu toate acestea, acesta este un format independent de limbajul de date. Codul pentru analizarea și generarea datelor JSON este disponibil în multe limbaje de programare. Site-ul web JSON listează toate bibliotecile.

Deși formatul JSON online a fost promovat inițial și considerat un subset strict de JavaScript și ECMAScript, ocazional permite unele caractere fără escape în șiruri care nu sunt valide în șirurile JavaScript și ECMAScript.

De la sine, JSON a devenit standard international ECMA în 2013 ca standard ECMA-404, care a fost folosit în RFC 7158 ca referință în același an. În 2014, RFC 7159 a devenit referința principală pentru utilizarea JSON pe web (de exemplu, aplicația MIME / json).

Tipuri de date, sintaxă și exemplu

Principalele tipuri de date JSON sunt:

  • Număr: numar decimal semnat care poate conţine parte fracționatăși poate folosi notația exponențială E, dar nu poate include non-numere (cum ar fi NaN). Formatul nu face distincție între numere întregi și numere în virgulă mobilă. JavaScript folosește formatul în virgulă mobilă cu precizie dublă pentru toate valori numerice dar alte limbi care implementează JSON le pot codifica diferit.

  • Șir: o secvență de zero sau mai mare Caractere Unicode... Șirurile sunt delimitate de ghilimele duble și acceptă sintaxa backslash.
  • Literale: oricare dintre adevărate sau false.
  • Matrice: o listă ordonată de zero sau mai multe valori, fiecare dintre acestea putând fi de orice tip. Utilizarea matricelor paranteza patrata cu virgule.
  • Obiect: O colecție neordonată de perechi nume/valoare, unde numele (numite și chei) sunt șiruri. Deoarece obiectele sunt concepute pentru a reprezenta matrice asociative, se recomandă (deși nu este necesar) ca fiecare cheie să fie unică în ea. Obiectele sunt separate prin acolade și folosesc virgule pentru a separa fiecare pereche, în timp ce în fiecare dintre ele un caracter două puncte separă cheia sau numele de valoarea sa.
  • Nul: Valoare goală folosind cuvântul nul.

Spațiile restricționate sunt permise și pot fi plasate în jurul sau între elemente sintactice (semnificație și punctuație, dar nu în cadrul valorii șirului). În acest scop, doar patru caractere speciale spațiile sunt numărate: spațiu, filă orizontală, avans de linie și bară oblică. În special, marca de ordine a octeților nu trebuie să fie generată de o implementare conformă (deși poate fi acceptată la analizarea JSON). Solicitați în format JSON nu oferă sintaxă pentru comentarii.

Versiunile anterioare (cum ar fi cele specificate în RFC 4627) necesitau ca un document valid să fie compus doar dintr-un obiect sau un tip de matrice, care ar putea conține alte tipuri în ele. Acest format JSON, al cărui exemplu poate fi găsit pe paginile web vechi, nu este utilizat în prezent.

Probleme de portabilitate a datelor

Deși Douglas Crockford a susținut inițial că JSON este un subset strict al JavaScript, specificațiile sale permit de fapt să fie create documente care nu pot fi citite în JavaScript. În special, JSON permite valori Șiruri Unicode U + 2028 LINE SEPARATOR și U + 2029 PARAGRAPH SEPARATOR arătau fără escape pe rândurile ghilimele, dar JavaScript nu. Acest lucru se datorează faptului că JSON interzice doar „caracterele de control”. Pentru o compatibilitate maximă, aceste caractere ar trebui să fie eliminate cu o bară oblică inversă. Această subtilitate este importantă atunci când creați JSONP.

Format JSON: cum se deschide?

Documentele JSON pot fi codificate în UTF-8, UTF-16 sau UTF-32, codificarea implicită este UTF-8. Aceste standarde susțin Set complet Caractere Unicode, inclusiv caractere din afara planului multilingv principal (U + 10000 până la U + 10FFFF). Cu toate acestea, dacă se scapă, aceste caractere trebuie scrise folosind perechi surogat UTF-16 - un detaliu pe care unii analizoare JSON îl scapă. Cum se deschide și cum va fi citit un astfel de fișier?

Numerele în acest format sunt agnostice cu privire la reprezentarea lor în limbaje de programare. Nu există nicio diferență între un număr întreg și o valoare în virgulă mobilă: unele implementări pot trata 42, 42.0 și 4.2E + 1 ca fiind același număr, în timp ce altele nu. În plus, nu există cerințe pentru probleme precum preaplin, depășire, pierderea preciziei sau rotunjire. De asemenea, formatul JSON nu spune nimic despre gestionarea zerourilor semnate, indiferent dacă 0.0 este altul decât -0.0. Majoritatea implementărilor care utilizează standardul IEEE 754 în virgulă mobilă, inclusiv JavaScript, stochează zerouri semnate, dar nu toate implementările JSON pot.

Utilizare în JavaScript

Deoarece formatul JSON a fost derivat din JavaScript și sintaxa sa este (în mare parte) un subset al limbajului, puteți utiliza funcția JavaScripteval pentru a analiza datele JSON. Din cauza problemei legate de analizarea terminatoarelor de șir Unicode discutate în secțiunea anterioară, funcția eval trebuie să le înlocuiască.

Este nesigur dacă șirul nu este validat corespunzător. În schimb, ar trebui să utilizați biblioteca de analiză JSON sau suportul JavaScript pentru a citi și scrie JSON.

Un parser implementat corect acceptă doar formatul JSON valid, așa cum este descris în sistem, prevenind executarea neintenționată a unui cod potențial rău intenționat.

Din 2010, browserele web precum Firefox și Internet Explorer au fost activate pentru analiza și exportul în format JSON.

Tipuri de date native neacceptate

Sintaxa JavaScript definește mai multe tipuri de date native care nu sunt incluse în standardul JSON: Hartă, Set, Data, Eroare, Expresie uzuala, Funcție și altele. Aceste tipuri Date JavaScript trebuie să fie într-un alt format, ambele programe fiind de acord asupra modului de conversie între tipuri. Există câteva standarde de facto astăzi, cum ar fi conversia unei date într-un șir, dar niciunul dintre ele nu este în general acceptat. Alte limbi pot avea set diferit tipuri native care trebuie serializate cu atenție pentru a face față acestui tip de conversie.

Schema JSON

O schemă este utilizată pentru a defini o structură de date JSON pentru validare, documentare și gestionarea interacțiunii. Oferă un fel de contract pentru datele solicitate de aplicație și o modalitate de modificare.

Schema se bazează pe concepte din XML Schema (XSD), dar este proprietară. Ca și în cazul XSD, aceleași facilități de serializare / deserializare sunt utilizate atât pentru schemă, cât și pentru date.

Schema este un proiect de internet care se află în prezent în versiunea 5 (lansat pe 13 octombrie 2016). Există mai multe validatoare disponibile pentru limbi diferite programare, fiecare cu un nivel diferit de conformitate. Extensie standard nu există fișiere, dar unii experți sugerează validarea .schema.json.

tip MIME

Tipul MIME oficial pentru textul JSON este „application/json”. Deși majoritatea implementărilor moderne au adoptat tipul MIME oficial, multe aplicații continuă să ofere suport pentru alte tipuri MIME. Mulți furnizori de servicii, browsere, servere, aplicații web, biblioteci, cadre și API-uri folosesc, așteaptă sau recunosc un tip MIME al cărui conținut arată ca „text/json” sau „text/javascript”. Exemple notabile includ cautare Google API, Yahoo!, Flickr, Facebook API, DojoToolkit 0.4 și așa mai departe.

JSON-RPC

JSON-RPC este un protocol de apel de procedură la distanță (RPC) bazat pe JSON, creat ca înlocuitor pentru XML-RPC sau SOAP. Este un protocol simplu care definește doar câteva tipuri de date și comenzi. Permite sistemului să trimită notificări (informații către server care nu necesită un răspuns) și apeluri multiple către server la care se poate răspunde nefuncțional.

AJAJ

JavaScript asincron și JSON (sau AJAJ) se referă la aceeași metodologie de pagină web dinamică ca și Ajax, dar în loc de XML, formatul de date JSON este cel care domină. AJAJ este o tehnologie de dezvoltare web care permite unei pagini web să solicite date noi după ce a fost încărcată într-un browser. De obicei, le afișează de pe server ca răspuns la acțiunile utilizatorului pe pagina respectivă. De exemplu, ceea ce utilizatorul scrie în caseta de căutare, codul clientului îl trimite apoi către server, care răspunde imediat cu o listă derulantă cu elementele de bază de date care se potrivesc.

Preocupările legate de securitate

Textul JSON este definit ca un obiect de serializare a datelor. Cu toate acestea, designul său, ca un subset liber al limbajului de scripting JavaScript, ridică mai multe probleme de securitate. Se concentrează pe utilizarea interpretului Javascript pentru a executa dinamic text JSON, cum ar fi JavaScript inline. Acest lucru expune programul la scripturi eronate sau rău intenționate. Aceasta este o problemă serioasă atunci când aveți de-a face cu date preluate de pe Internet.

Această metodă simplă și populară, dar riscantă, profită de compatibilitatea JavaScripteval.

Unii dezvoltatori cred în mod eronat că textul JSON este, de asemenea, similar sintactic cu JavaScript, deși acest lucru este doar parțial adevărat. Prin urmare, se crede că o modalitate ușoară pentru un program JavaScript de a analiza datele în acest format este să folosească funcția încorporată JavaScripteval, care a fost concepută pentru a evalua expresiile Javascript. În loc să folosească un parser specific, interpretul însuși este astfel folosit pentru a executa date JSON, creând obiecte JavaScript naturale. Cu toate acestea, această metodă este riscantă dacă există posibilitatea ca datele JSON să conțină Javascript arbitrar, care va fi apoi executat în același mod. Dacă nu sunt luate măsuri pentru validarea datelor mai întâi, metoda de evaluare este vulnerabilă la vulnerabilitățile de securitate în care datele și întregul mediu JavaScript nu sunt sub controlul unei singure surse de încredere.

De exemplu, dacă datele nu sunt verificate, acestea sunt atacate de malware Cod JavaScript... Astfel de încălcări pot prezenta, de asemenea, riscul de furt de date, falsificare de autentificare și alte posibile utilizări greșite a datelor și resurselor.

În acest fel, noua functie JSON.parse a fost conceput pentru a fi o alternativă mai sigură la eval. Este conceput special pentru a gestiona datele JSON, nu JavaScript. Inițial, a fost planificat pentru a fi inclus în cea de-a patra ediție a standardului ECMAScript, dar acest lucru nu s-a întâmplat. A fost adăugat pentru prima dată în versiunea 5 și acum este acceptat de browserele majore.

Json(JavaScript Object Notation - reprezentare obiecte JavaScript) – format ușor reprezentarea datelor bazată pe un subset de sintaxă JavaScript, mai precis pe literali tablouri și obiecte. JSON este o alternativă la formatele tradiționale ( text simplu sau XML), care sunt utilizate în schimbul de date între server și client. Spre deosebire de limbajele compatibile cu XML și XML, care necesită analizare, definițiile JSON pot fi pur și simplu incluse în Scripturi JavaScript... Formatul JSON a fost propus de programatorul Douglas Crockford.

Poate că voi veni de departe, dar pentru a înțelege cu adevărat JSON, să înțelegem mai întâi (ne amintim) sintaxa matricelor și obiectelor în notația literală JavaScript.

Matrice ca literale
O matrice în JavaScript poate fi definită folosind constructorul Array, astfel:

Var aData = nou Array („șir”, adevărat, 43, nul);

În JavaScript, matricele sunt netipizate, deci pot fi stocate tipuri diferite date. În exemplu, matricea conține un șir, un boolean, un număr și o valoare nulă.

O matrice descrisă ca un literal poate fi definită folosind paranteze pătrate, în interiorul - valorile elementelor matricei, separate prin virgule. Iată cum ar arăta aceeași matrice, dar în notație literală:

Var aData = ["șir", adevărat, 43, nul];

Vorbește cu un element separat o matrice poate fi specificată după numele matricei și numărul elementului:

Alertă (aData); alertă (aData);

Obiectele ca literale
Obiectele din JavaScript sunt definite folosind constructorul Object, astfel:

Var oAuto = obiect nou (); oAuto.firm = "Audi"; oAuto.model = "A6"; oAuto.an = 2008; oAuto.pret = 78000;

Același cod, dar în notație literală va arăta astfel:

Var oAuto = ("firma": "Audi", "model": "A6", "an": 2008, "pret": 78000);

Acest cod creează un obiect cu proprietăți de firmă, model, an și preț și poate fi accesat astfel:

Alertă (oAuto.model); alertă (oAuto.an);

dar puteți folosi și sintaxa matricelor, referindu-vă la proprietățile unui obiect în acest fel:

Alertă (oAuto [„model”]); alertă (oAuto [„an”]);

În notație literală, descrierile de matrice și obiecte pot fi imbricate unele în altele, creând astfel obiect matrice sau matrice de obiecte... Verificați acest cod:

Var aAuto = [("firmă": "BMW", "model": "X5", "an": 2007, "preț": 99000), ("firm": "Audi", "model": "A6" , „an”: 2008, „preț”: 78000), („firm”: „Volkswagen”, „model”: „Touareg 7L”, „an”: 2006, „preț”: 45000)];

Am creat o matrice aAuto care conține trei obiecte. Combinând sintaxa de accesare a matricelor cu sintaxa de accesare a obiectelor, să încercăm să obținem anul de fabricație al celei de-a doua mașini:

Alertă (aAuto.an); // obține 2008

Puteți face opusul și puteți descrie un obiect de matrice:

Var oAuto = ("firmă": ["BMW", "Audi", "Volkswagen"], "model": ["X5", "A6", "Touareg 7L"], "an" :, "preț": );

în acest caz, ne referim mai întâi la obiect și apoi la matricea din interiorul acestuia:

Alertă (oAuto.an); // obține 2008

Iată o prefață atât de lungă, dar acum va fi mult mai clar de a face cu ea. Json

Json- o combinație de matrice și obiecte și este destinată numai stocării datelor. Prin urmare, Json nu poate avea variabile și nu permite nicio operațiune asupra lor. Să încercăm să scriem exemplul anterior folosind sintaxa Json:

("firmă": ["BMW", "Audi", "Volkswagen"], "model": ["X5", "A6", "Touareg 7L"], "an" :, "preț":)

Notă că numele variabilei și punctul-virgulă lipsesc. Transferul unui astfel de obiect folosind protocolul HTTP va fi foarte rapid, deoarece conține un minim de caractere. După ce primim astfel de date pe partea clientului și le scriem într-o variabilă (de exemplu sData), obținem un șir de informații.
Notă: exact un șir, nu un obiect sau un obiect cu matrice imbricate deloc. Convertiți un șir într-un obiect folosind funcția eval ().

Var oAuto = eval ("(" + sData + ")");

Acest lucru va avea ca rezultat obiectul pe care l-am descris mai sus.

JSON peste XML
Deci, care este avantajul JSON față de XML?

Aici este vorba exclusiv despre avantaje și dezavantaje doar din punctul de vedere al organizării schimbului de date pe Web.

Este asta Limbajul XML se dovedește a fi foarte redundant în comparație cu JSON. Să vedem asta mai departe exemplu simplu... Reprezentăm aceleași date în format XML și în format JSON.

BMW X5 2007 99000 Audi A6 2008 78000 Volkswagen Touareg 7L 2006 45000

așa arată în format XML, iar mai jos - în format JSON:

("general": ("mașini": [("firmă": "BMW", "model": "X5", "an": 2007, "preț": 99000), ("firm": "Audi", „model”: „A6”, „an”: 2008, „preț”: 78000), „firma”: „Volkswagen”, „model”: „Touareg 7L”, „an”: 2006, „preț”: 45000 )]))

Când utilizați formatul JSON, câștigul va fi de 42 de octeți și, excluzând spațiile, chiar și de 86 de octeți. Și dacă ne amintim, de asemenea, că datele în format JSON nu necesită o analiză suplimentară pe partea clientului, avantajul JSON față de XML în ceea ce privește transferul de date de la server la client devine evident...

JSON (JavaScript Object Notation) este un format de transfer de date. După cum sugerează și numele, formatul se bazează pe limbă Programare JavaScript cu toate acestea, este disponibil și în alte limbi (Python, Ruby, PHP, Java).

JSON folosește extensia .json. Când este utilizat în alte formate de fișiere (cum ar fi .html), șirul JSON este citat sau atribuit unei variabile. Acest format este ușor de transferat între serverul web și client sau browser.

JSON ușor și ușor de citit - excelentă alternativă XML.

Acest ghid vă va prezenta beneficiile, obiectele, structura de ansambluși sintaxa JSON.

Sintaxa și structura JSON

Un obiect JSON este sub formă de cheie/valoare și este de obicei scris între acolade. Când lucrați cu JSON, toate obiectele sunt stocate într-un fișier .json, dar pot exista și ca obiecte separate în contextul unui program.

Obiectul JSON arată astfel:

"first_name": "Ioan",
"last_name": "Smith",
"location": "Londra",
„online”: adevărat,
„adepți”: 987

Acesta este un exemplu foarte simplu. Un obiect JSON poate conține multe șiruri de caractere.

După cum puteți vedea, obiectul este alcătuit din perechi cheie-valoare care sunt cuprinse între acolade. Majoritatea datelor din JSON sunt scrise ca obiecte.

Se plasează două puncte între cheie și valoare. Fiecare pereche trebuie urmată de o virgulă. Rezultatul este:

„cheie”: „valoare”, „cheie”: „valoare”, „cheie”: „valoare”

Tasta JSON este în stânga. Cheia trebuie pusă înăuntru ghilimele duble... Orice șir valid poate fi folosit ca cheie. Într-un singur obiect, toate cheile trebuie să fie unice. Cheia poate conține un spațiu („prenume”), dar pot apărea probleme de programare cu accesul la o astfel de cheie. Prin urmare, în loc de spațiu, este mai bine să folosiți un caracter de subliniere ("first_name").

Valorile JSON sunt în partea dreaptă a coloanei. Orice tip de date simplu poate fi folosit ca valoare:

  • Siruri de caractere
  • Numerele
  • Obiecte
  • Matrice
  • Date booleene (adevărate sau false)

Valorile pot fi reprezentate și prin tipuri de date complexe (de exemplu, obiecte sau matrice JSON).

JSON acceptă sintaxa individuală pentru fiecare dintre tipurile de date de mai sus: dacă valoarea este un șir, atunci va fi citată, iar dacă este un număr, atunci nu.

De obicei, datele din fișierele .json sunt scrise într-o coloană, totuși JSON poate fi scris și într-un șir:

("first_name": "John", "last_name": "Smith", "online": adevărat,)

Acesta este modul în care datele JSON sunt de obicei scrise în alte tipuri de fișiere.

Scriind date JSON într-o coloană, îmbunătățiți lizibilitatea fișierului (mai ales dacă există multe date în fișier). JSON ignoră spațiile albe dintre coloane, astfel încât să le puteți folosi pentru a vă împărți datele într-un număr de coloane care poate fi citit de om.

"first_name": "Ioan",
"last_name": "Smith",
„online”: adevărat

Vă rugăm să rețineți: obiectele JSON sunt foarte asemănătoare cu obiecte JavaScript dar nu au același format. De exemplu, JavaScript poate folosi funcții, dar JSON nu.

Principalul avantaj al JSON este că datele în acest format sunt acceptate de multe limbaje de programare populare, astfel încât să poată fi transferate rapid.

Acum sunteți familiarizat cu sintaxa JSON de bază. Dar fișierele JSON pot fi dificile, structura ierarhica care include matrice imbricate și obiecte.

Tipuri complexe în JSON

JSON poate stoca obiecte și matrice imbricate, care vor fi transmise ca valoare a cheii alocate acestora.

Obiecte imbricate

Mai jos veți găsi un exemplu - fișierul users.json, care conține date despre utilizatori. Pentru fiecare utilizator

(„John”, „jesse”, „drew”, „jamie”) un obiect imbricat este transmis ca valoare, care, la rândul său, constă și din chei și valori.

Notă: primul obiect JSON imbricat este evidențiat cu roșu.

„John”: (
"nume utilizator": "Ioan",
"location": "Londra",
„online”: adevărat,
„adepți”: 987

"Jesse" :(
„nume utilizator”: „Jesse”,
"location": "Washington",
„online”: fals,
„adepți”: 432

"a desenat": (
"nume utilizator": "Drew",
„locație”: „Paris”,
„online”: fals,
„adepți”: 321

"jamie": (
"nume utilizator": "Jamie",
"location": "Berlin",
„online”: adevărat,
„adepți”: 654

Rețineți că acoladele sunt folosite atât în ​​obiectul imbricat, cât și în cel principal. Virgulele sunt folosite în obiectele imbricate în același mod ca și în cele obișnuite.

Matrice imbricate

Datele pot fi încorporate în JSON folosind Matrice JavaScript să fie transmise ca valori. JavaScript folosește paranteze drepte () la începutul și la sfârșitul unui tablou. O matrice este o colecție ordonată de date care poate conține date de diferite tipuri.

Matricea este folosită pentru a transmite un numar mare date care pot fi grupate. De exemplu, să încercăm să înregistrăm datele utilizatorului.

{
"first_name": "Ioan",
"last_name": "Smith",
"location": "Londra",
„site-uri web”: [

"descriere": "lucrare",
„URL”: „https://www.johnsmithsite.com/”

},
{

"desciption": "tutoriale",
„URL”: „https://www.johnsmithsite.com/tutorials”

„social_media”: [

"descriere": "twitter",
„link”: „https://twitter.com/johnsmith”

"descriere": "facebook",
„link”: „https://www.facebook.com/johnsmith”

"descriere": "github",
„link”: „https://github.com/johnsmith”

Cheilor „site-uri web” și „social_media” li se atribuie matrice ca valori, care sunt plasate între paranteze drepte.

Folosind tablouri și obiecte imbricate, puteți crea ierarhii complexe de date.

JSON sau XML?

XML (eXtensible Markup Language) vă permite să stocați date într-o formă convenabilă pentru percepția umană și a mașinii. Format XML acceptat cantitate mare limbaje de programare.

XML și JSON au multe în comun. Cu toate acestea, XML necesită mult mai mult text, prin urmare, astfel de fișiere sunt mai mari și mai greu de citit și scris. Mai mult, XML poate fi procesat doar folosind un interpret XML, în timp ce JSON poate fi procesat folosind o funcție simplă. Spre deosebire de JSON, XML nu poate stoca matrice.

Să comparăm două fișiere: ele conțin aceleași date, dar primul este scris în format XML și al doilea în JSON.

utilizatori.xml

Ioan Londra

Jesse Washington

Drew Paris

Jamie Berlin

users.json
("utilizatori": [

("nume de utilizator": "Ioan", "locație": "Londra"),
("nume de utilizator": "Jesse", "locație": "Washington"),
("nume utilizator": "Drew", "locație": "Paris"),
("nume de utilizator": "JamieMantisShrimp", "locație": "Berlin")

JSON este un format foarte compact și nu necesită atât de multe etichete ca XML. De asemenea, XML, spre deosebire de JSON, nu acceptă matrice.

Dacă sunteți familiarizat cu HTML, veți observa că formatul XML este foarte asemănător cu acesta (în special cu etichete). JSON este mai simplu, necesită mai puțin text și este mai ușor de utilizat, de exemplu, în aplicațiile AJAX.

Desigur, formatul trebuie ales în funcție de nevoile aplicației.

Instrumente pentru JSON

JSON este folosit în mod obișnuit în JavaScript, cu toate acestea, acest format este utilizat pe scară largă în alte limbaje de programare.

Mai multe informații despre compatibilitatea și manipularea JSON pot fi găsite pe site-ul proiectului și în biblioteca jQuery.

Scrierea JSON de la zero este rară. De obicei, datele sunt încărcate din surse sau convertite în JSON. Puteți converti datele CSV sau delimitate de tabulatori în JSON cu instrument deschis Domnul. Convertor de date. Pentru a converti XML în JSON și invers, utilizați utilities-online.info. Când lucrezi cu unelte automate asigurați-vă că verificați rezultatul.

Fișierele JSON (inclusiv datele convertite) pot fi verificate folosind serviciul JSONLint. Pentru a testa JSON într-un context de dezvoltare web, consultați JSFiddle.

Concluzie

JSON este un format de date simplu și ușor. Fișierele JSON sunt ușor de transferat, stocat și utilizat.

JSON este folosit foarte mult în API-uri astăzi.

În acest articol, vreau să vorbesc despre formatul de schimb de date textuale - JSON și anume despre lucrul cu acest format în PHP.

JSON este un format de date textual compact. Poate fi folosit atât în ​​serviciile de transmisie de date pe Internet, cât și pentru stocarea informațiilor într-o formă structurată.

JSON ( Engleză Notarea obiectelor JavaScript) Este un format de schimb de date textuale bazat pe JavaScript și utilizat în mod obișnuit cu acest limbaj special. Ca mulți alții formate de text JSON este ușor de citit de oameni.

În ciuda originii sale din JavaScript (mai precis, dintr-un subset al standardului ECMA-262 din 1999), formatul este considerat independent de limbaj și poate fi folosit cu aproape orice limbaj de programare. Pentru multe limbi există cod gata pentru a crea și procesa date în format JSON.

Beneficii practice folosind JSON se deschide când este utilizat tehnologii AJAX... JSON este mai concis și mai lizibil decât XML și este nativ pentru Javascript. În plus, este posibil să inserați funcții complet funcționale în codul JSON.

Da, în tehnologia AJAX, după părerea mea, principala sa aplicație este. Deoarece tehnologia AJAX presupune trimiterea unei cereri de client către server. Mai departe pe server cererea este procesată, iar rezultatul este trimis ca răspuns către client.

Vizualizarea datelor JSON

JSON acceptă toate formatele majore de date: șiruri de caractere, numere, boolean, precum și matrice și obiecte (cheie: combinații de valori, separate prin virgule și cuprinse între acolade).

Iată un exemplu de reprezentare a datelor în format JSON:

("id": "1", "nume": "ivan", "țara": "Rusia", "oficiu": ["yandex", "management"])

Să aruncăm o privire la ceea ce poate transmite acest șir: o persoană numită „ivan”, sub identificatorul „1”, care locuiește în țara „Rusia”, lucrează pentru compania „yandex” în departamentul „management”.

Să mai dăm un exemplu. Site-ul are un formular părere alimentat de tehnologia AJAX. Vizitatorul completează informațiile, apoi sunt trimise către server pentru verificare, dacă nu sunt găsite erori, informațiile sunt salvate în baza de date și este trimis un răspuns despre salvarea cu succes. Dar dacă se găsesc erori, atunci este returnat un răspuns cu tipuri de erori.

Un exemplu de răspuns de eroare în format JSON:

("eroare": "1", "cod de eroare": ["empty_pers", "empty_mail", "empty_phone", "empty_letter", "empty_scode"])

Ceea ce înseamnă, de exemplu:

  • Trebuie să completați câmpul „Persoană de contact”.
  • Trebuie să completați câmpul „E-mail”.
  • Trebuie să completați câmpul „Telefon”.
  • Introduceți mesajul dvs
  • Este necesar să completați câmpul „Numărul din imagine”

Dacă nu există erori, atunci răspunsul este returnat:

("eroare": "0")

Asta spune despre trimiterea cu succes a datelor.

În PHP, extensia JSON este folosită pentru a reprezenta date în format JSON. V versiuni PHP Suportul JSON mai vechi decât 5.2.0 este încorporat în nucleu, în mai multe versiuni timpurii trebuie să fie conectat la scriptul dvs fișier suplimentar cu functii.

Deci, în PHP, două funcții sunt responsabile pentru lucrul cu date în format JSON: json_encode () și json_decode ().

Conversia datelor în format JSON

$ json_data = array ("id" => 1, "name" => "ivan", "country" => "Rusia", "office" => array ("yandex", "management")); echo json_encode ($ json_data);

Conversie inversă a datelor din formatul JSON

$ json_string = "(" id ": 1," nume ":" ivan "," țara ":" Rusia "," birou ": [" yandex "," management "])"; $ obj = json_decode ($ json_string);

Acum $ obj va conține date JSON traduse într-un obiect PHP, pe care îl puteți accesa după cum urmează:

Echo $ obj-> nume; // Va afișa numele ivan echo $ obj-> office; // Afișează compania yandex

După cum puteți vedea, $ obj-> office este o matrice.

Foreach ($ obj-> office ca $ val) echo $ val;

Lucrul cu JSON vă permite să faceți schimb de date cu serverul în « formă pură» ... Necesitatea de a trimite bucăți greoaie de cod HTML este complet eliminată.

Persoanele care sunt familiarizate cu programarea vor recunoaște imediat fișierele cu extensia JSON. Acest format este o abreviere a JavaScript Object Notation și este în esență o versiune textuală a schimbului de date folosită în limbajul de programare JavaScript. În consecință, fie software-ul specializat, fie editorii de text vă vor ajuta să faceți față deschiderii unor astfel de fișiere.

Principala caracteristică a scripturilor în format JSON este interschimbabilitatea sa cu formatul XML. Ambele tipuri sunt documente text care poate fi deschis cu procesoare de text. Cu toate acestea, vom începe cu software specializat.

Metoda 1: Altova XMLSpy

Un mediu de dezvoltare destul de cunoscut, care este folosit și de programatorii web. Acest mediu generează și fișiere JSON, prin urmare este capabil să deschidă documente terță parte cu această extensie.


Acest software are două dezavantaje. Prima este o bază de distribuție plătită. Versiune de încercare activ timp de 30 de zile, însă, pentru a-l primi, trebuie să-ți indicați numele și cutie poștală... A doua este greutatea generală: pentru o persoană care trebuie doar să deschidă un fișier, poate părea prea fantezist.

Metoda 2: Notepad ++

Editorul de text multifuncțional este primul din lista de scripturi JSON potrivite pentru deschidere.


Notepad ++ are o mulțime de avantaje - afișează sintaxa multor limbaje de programare și suport pentru pluginuri și o dimensiune mică... Cu toate acestea, din cauza unor particularități, programul funcționează lent, mai ales dacă deschideți un document mare în aceasta.

Metoda 3: AkelPad

Un editor de text incredibil de simplu și, în același timp, bogat în funcții de la un dezvoltator rus. JSON este unul dintre formatele pe care le acceptă.


La fel ca Notepad ++, această variantă de Notepad este, de asemenea, gratuită și acceptă pluginuri. Funcționează mai repede, dar mare și fișiere complexe este posibil să nu se deschidă prima dată, așa că țineți cont de acest lucru.

Metoda 4: Komodo Edit

Software de scris gratuit codul programului de la compania Komodo. E diferit interfață modernăși suport larg de caracteristici pentru programatori.


Din păcate, nu există limba rusă în program. Cu toate acestea, un utilizator obișnuit este mai probabil să fie speriat de funcționalitatea redundantă și elementele de interfață de neînțeles - la urma urmei, acest editor se concentrează în primul rând pe programatori.

Metoda 5: Text sublim

Un alt reprezentant al cod-oriented editori de text... Interfața este mai simplă decât cea a colegilor, dar posibilitățile sunt aceleași. Disponibil și versiune portabilă aplicatii.


Din pacate, Text sublim nu este disponibil în limba rusă. Modelul de distribuție shareware poate fi numit și un dezavantaj: versiunea gratuită nu este limitată de nimic, dar din când în când există un memento pentru a cumpăra o licență.

Metoda 6: NFOPad

Cu toate acestea, un simplu bloc de note este bine pentru vizualizarea documentelor cu extensia JSON.


NFOPad este potrivit pentru vizualizarea documentelor JSON, dar există o avertizare - când deschideți unele dintre ele, programul se blochează bine. Care este motivul acestei caracteristici nu este cunoscut, dar aveți grijă.

Metoda 7: Notepad

În sfârșit, standardul procesor de cuvinteîncorporat în sistemul de operare Windows este, de asemenea, capabil să deschidă fișiere JSON.


În concluzie, să spunem următoarele: fișierele cu extensia JSON sunt documente text obișnuite care pot fi procesate nu numai de programele descrise în articol, ci și de o grămadă de altele, inclusiv ale lui. analogi gratuitiși . Este foarte probabil ca astfel de fișiere să poată fi gestionate de și.

Top articole similare