Ce este json. Format JSON: ce este, cum să creați și să deschideți un fișier

Variabilele, tablourile și obiectele sunt o formă familiară și convenabilă de prezentare a datelor. Este obișnuit să descrieți datele în limba JavaScript a browserului, care nu este necesară în limba serverului PHP. Formatul JSON vă permite să le generalizați într-un întreg și să nu vă concentrați asupra limbajului de programare. Aceasta convertește datele în perechi: „nume \u003d valoare”. Valoarea din fiecare dintre ele poate fi, de asemenea, o colecție de astfel de perechi.

Se acceptă asocierea JSON cu aparate dentare și aceasta din urmă este destul de justificată, deoarece formatul JSON \u003d JavaScript Notation Object. S-au schimbat multe în ultimii ani deosebit de dinamici. Ceea ce a fost creat pentru un anumit scop a adus adesea rezultate neașteptate sau a deschis noi orizonturi.

Schimb de date: browser - server

Tehnologia AJAX a devenit o reîmprospătare tradițională, regulată a paginii în întregime a încetat să mai fie popular. Un vizitator, deschizând un site, inițiază o serie de schimburi de date parțiale, atunci când anumite pagini se schimbă numai în locul relevant.

Se crede că apariția JSON este asociată cu utilizarea AJAX, dar, de fapt, asociativ și notația obiectului său (caracteristicile sintaxei pentru descrierea și utilizarea obiectelor) sunt mult mai mult legate de JSON decât schimbul de date între browser și server.

Deoarece conținutul paginilor site-urilor moderne a devenit cu adevărat „masiv” (voluminos), eficacitatea formatului pentru schimbul de date a căpătat o importanță deosebită. Acest lucru nu înseamnă că JSON a devenit o nouă reprezentare a datelor, dar faptul că a făcut mult timp parte din sintaxa JavaScript este semnificativ.

Utilizarea chirilică în denumirea variabilelor este un fenomen foarte neașteptat (prostie), dar funcționează în cele mai recente versiuni de Chrome, Firefox și chiar Internet Explorer 11.

Chirilic și JSON

Desigur, nu ar trebui să utilizați acest fenomen complet neașteptat, amintindu-vă cât de ușor se transformă valorile variabilelor scrise în litere rusești în krakozyabry: ce pot spune despre nume, în special cele externe.

Este îndoielnic că inițiativa în numele chirilice va fi susținută de mediul extern al browserului, cu care trebuie să se ocupe în mod constant. Dar acest fapt merită atenție din simplul motiv că formatul JSON este capacitatea de a scrie nume și prețuri așa cum dorește dezvoltatorul. Acest lucru este esențial, deoarece în fiecare sarcină, descrierea zonei aplicației, deoarece necesită simplifică foarte mult depanarea și reduce numărul de erori.

Nu contează pe ce bază s-a bazat inovația sintactică - JSON, este important ca acesta să ofere un drept legal și o oportunitate reală de a pune corespondența: „orice nume \u003d orice valoare”.

Trebuie să aducem un omagiu limbajului JavaScript: ceea ce este oferit de sintaxă nu obligă dezvoltatorul și nu îi impune nimic. Dezvoltatorul folosește în mod liber sintaxa limbajului pentru formarea optimă a modelului de date și algoritmul pentru utilizarea lor.

PHP și JSON

Prin acceptarea datelor în format JSON, serverul (în special prin PHP) oferă posibilitatea de a le procesa așa cum este și de a returna rezultatul înapoi în browser într-un format similar. Matrice originală PHP:

  • $ cJSON \u003d array ("a" \u003d\u003e "alfa", "b" \u003d\u003e "beta", "g" \u003d\u003e "gamma").

Conversia în format JSON pentru transmisie către browser:

  • $ cJS \u003d json_encode ($ cJSON).

Rezultat:

  • („a”: „alfa”, „b”: „beta”, „g”: „gamma”).

Cuibul afișat în fotografie este permis.

Aici matricea generată a fost adăugată de un element nou „în sine” cu indexul automat „0” și apoi din nou cu indexul „z” specificat.

Json_decode () convertește un șir JSON într-un tablou PHP. Rezultate similare pot fi obținute prin manipularea funcțiilor și explodarea (). În unele cazuri, această opțiune este preferabilă.

Nivelul de cuibărire

Elementele pot fi imbricate unul în celălalt atât în \u200b\u200bpartea browserului, cât și în partea serverului. În practică, formatul JSON (așa cum este descris în RFC 4627) oferă semnificativ mai mult de 4 niveluri de cuibărire, dar această caracteristică nu trebuie abuzată.

Cel mai bine este să nu treceți niciodată dincolo de suficiența rezonabilă, face codul lizibil și facilitează depanarea și înțelegerea pentru alți dezvoltatori.

Este obișnuit să se trimită JSON la structuri de date care sunt mai simple decât XML și sunt ușor de înțeles atât de oameni, cât și de computere. Acest lucru este adevărat atunci când cantitatea de date este mică și dezvoltatorul a ales corect nivelul de cuibărire. În toate celelalte cazuri, este dificil să se numere numărul parantezelor și să îl înțeleagă atât din partea browserului, cât și din partea serverului.

Fișiere JSON

În practică, JSON nu se limitează adesea la un șir scurt lizibil. Orice construcție de date este întotdeauna pragmatică. În același timp, JSON poate fi utilizat în mod eficient atât în \u200b\u200bdatele reale ale sarcinii (personalul întreprinderii), cât și pentru implementarea datelor temporare (cache obiect).

Personalul întreprinderii și formatul JSON: exemplu

De obicei, o înregistrare despre o persoană este un nume de familie, nume, patronimic, anul nașterii, specialitate, educație, ... și câteva alte semnificații simple. Chiar și în companiile deosebit de solicitante, un record despre o persoană nu va depăși zece sau două domenii. Este perceptibil și poate fi introdus într-un șir de baze de date.

Dacă compania angajează mai mulți oameni - acesta este un lucru, dar dacă zeci de mii - acest lucru este complet diferit. Puteți continua să utilizați baza de date, dar stocarea acesteia ca fișier pare mai practică și mai ușor de utilizat.

JSON este un fișier text simplu. Cazul cu masa de personal, oriunde s-a dus. O puteți citi oricând. Deschiderea și editarea sunt disponibile, de asemenea, în orice editor de text care nu are obiceiul de a adăuga informațiile de serviciu la conținutul fișierului. În general, * .json este text pur atât în \u200b\u200bbrowser, cât și în interiorul fișierului - un șir.

Fotografia prezintă memoria cache a obiectului care formează imaginea, un exemplu.

Acesta este un exemplu al conținutului unui fișier generat de un site care oferă un serviciu de imprimare volumetrică color pentru căni și ceramică. Bineînțeles, a decide, având un astfel de format JSON, decât a-l deschide, este cu adevărat problematic. Cu toate acestea, în acest caz și în cazuri similare, nu există probleme cu citirea fișierului: PHP citește fișierul, îl analizează și îl transferă în browser. Datele modificate de vizitator sunt returnate la server și redactate.

În acest caz de utilizare, fișierul acționează ca o variabilă care este stocată în afara codului. Dacă este necesar, variabila își obține valoarea din fișier și, dacă este modificată de vizitator în dialogul furnizat de site, atunci toate modificările vor fi înregistrate așa cum este. Nu este nevoie să citiți și să verificați conținutul fișierului.

JSON este adesea folosit pentru a stoca și utiliza informații despre servicii - acesta nu este un tabel de personal, nu este necesar ca dezvoltatorul sau vizitatorul site-ului să îl vadă.

XML și JSON

„Totul la timp” este o cunoaștere clasică luată ca axiomă chiar înainte de apariția programării. „Nimic nu apare așa” - asta a fost și înainte ca o persoană să scrie primul program inteligibil în limbaj artificial.

Formatele de date apar dintr-o nevoie reală și se bazează pe cunoștințele realizate. HTML are propria cale, XML are propria cale, iar JSON este o logică bazată pe obiecte JavaScript extinsă la alte limbi. Compararea unui lucru cu altul nu este cel mai bun lucru de făcut. Fiecăruia al său.

XML face față perfect sarcinilor sale și este clar că nu va intra în istorie. Și JSON a fost folosit până în 2006, doar că nu orice dezvoltator a considerat că este de datoria sa să declare anumite opțiuni pentru reprezentarea datelor sale.

Au existat cazuri în practică când programele au fost scrise în BASIC care nu foloseau JSON ca atare, dar stochează perfect perechile „nume \u003d valoare” și le pun la dispoziția algoritmilor corecți la momentul potrivit.

Caracterele speciale ("", "~", "|", ...) și formatele de date

Obiceiul de a lucra cu tablouri asociative și obiecte în JavaScript face ca utilizarea JSON să fie naturală și convenabilă. Este un format cu adevărat excelent, dar abilitatea de a separa și concatena prin manipularea șirurilor și a matricelor are rădăcini mult mai profunde.

Funcțiile JavaScript / join și funcțiile PHP implode / explode vă permit să utilizați în mod convenabil și eficient atât XML, JSON, cât și propriile formate de date. Acesta din urmă este adesea mai optim, în timp ce primele două sunt ideale pentru uz general. Dacă informațiile sunt transferate către alt dezvoltator, server, fișier sau bază de date, este mai bine să nu găsiți XML și JSON. Toată lumea lucrează cu ei, deoarece transmiterea / recepționarea informațiilor nu are nevoie de comentarii.

Utilizarea JSON în Android

Citirea și scrierea datelor în format JSON în Android nu este doar norma, ci și multe obiecte orientate să funcționeze cu acest format de date.

În acest caz, este formatul JSON care este utilizat. Poate că așa este, dar întrebarea nu este despre fenomenalitatea rețelelor sociale, ci despre faptul că prezentarea informațiilor în formatul „nume \u003d valoare” este cu adevărat convenabilă atât pentru programare, cât și pentru utilizare. Spre deosebire de „XML” strict și complex, acesta este un format cu adevărat prietenos cu oamenii.

Tablouri asociative

S-a întâmplat ca variabilele să fie descrise (JavaScript) sau cel puțin să indice valoarea inițială (PHP). În ambele cazuri, o variabilă își poate schimba tipul foarte ușor. Limba efectuează această conversie automat, dacă este necesar.

Dar de ce nu ar trebui ca variabila să-și schimbe numele, să apară în timpul executării algoritmului și să dispară când nu mai este necesară? Tablourile asociative rezolvă această problemă, dar atunci când se utilizează astfel de variabile relativ dinamice, numele tabloului și constructele sintactice corespunzătoare vor urma unde sunt utilizate.

Această circumstanță este deosebit de pronunțată în PHP, dar o puteți suporta, ca, întâmplător, cu simbolul „$” în numele variabilei și combinația „$ this-\u003e” din interiorul obiectului. Programând în JavaScript și PHP în același timp, la început vă întrebați cu adevărat cât de diferit este totul, dar apoi totul devine atât de familiar și natural ...

Matrice asociativă -\u003e JSON

În acest exemplu, se creează un document * .docx utilizând biblioteca PHPOffice / PHPWord, iar matricea aProperties conține proprietățile acestui document (autor, companie, titlu, categorie, data creării ...).

A doua matrice conține date pentru pagină:

  • orientare (peisaj sau normal);
  • dimensiuni pe verticală și orizontală;
  • indentări (margini la stânga, sus, jos, dreapta);
  • anteturi și subsoluri.

Documentul este generat pe serverul unde este instalată biblioteca PHPOffice / PHPWord. Site-ul asigură gestionarea valorilor acestor tablouri utilizând JavaScript. Rezultatul în format JSON este returnat înapoi la server și utilizat în algoritmi PHP, în construcțiile sale, adică în matrice.

Variabile dinamice

Formatul JSON rezolvă problema variabilelor dinamice. Aici puteți crea, modifica și șterge variabile fără o aglomerație sintactică inutilă. Arată frumos și este folosit în JavaScript.

În acest exemplu, funcția GetOjInfo () preia un nume de valoare și o valoare dintr-un obiect. Inițial, obiectul șir JSON atribuit variabilei ojInfo are trei elemente: Nume, vârstă și muncă. Variabila Status este adăugată puțin mai târziu.

După prima declarație de ștergere, șirul ojInfo pierde elementul de vârstă, după a doua ștergere - elementul de lucru. Dacă presupunem că acest șir este o colecție de variabile care au o anumită semnificație, atunci prin intermediul JSON puteți crea, modifica și șterge oricare dintre seturile lor în afara câmpului operațional (sintaxă) pentru descrierea și procesarea JavaScript.

Formatul JSON nu a fost conceput pentru această opțiune, dar acest lucru este posibil, practic și convenabil.

Probabil ați auzit de JSON cândva. Ce este? Ce poate face și cum îl poate folosi?

În acest tutorial, vom acoperi elementele de bază ale JSON și vom acoperi următoarele puncte:

  • Ce este JSON?
  • Pentru ce se folosește JSON?
  • Cum creez un șir JSON?
  • Un exemplu simplu de șir JSON.
  • Să comparăm JSON și XML.
  • Cum se lucrează cu JSON în JavaScript și PHP?

Ce este JSON?

JSON este un mod simplu bazat pe text de a stoca și transmite date structurate. Cu o sintaxă simplă, puteți stoca cu ușurință orice, de la un număr la șiruri, matrice și obiecte în text simplu. De asemenea, puteți lega matrici și obiecte împreună pentru a crea structuri de date complexe.

Odată creat un șir JSON, este ușor să îl trimiteți către o altă aplicație sau în altă parte de pe web, deoarece este text simplu.

JSON are următoarele avantaje:

  • Este compact.
  • Frazele sale sunt ușor de citit și compus atât de oameni, cât și de computere.
  • Este ușor să-l convertiți într-o structură de date pentru majoritatea limbajelor de programare (numere, șiruri, booleeni, tablouri etc.)
  • Multe limbaje de programare au funcții și biblioteci pentru citirea și crearea structurilor JSON.

JSON înseamnă JavaScript Object Notation. După cum sugerează și numele, se bazează pe modul în care sunt definite obiectele (la fel ca crearea de matrici asociative în alte limbi) și matrice.

Pentru ce se folosește JSON?

Cea mai obișnuită utilizare a JSON este de a trimite date de la server la browser. De obicei, datele JSON sunt livrate folosind AJAX, care permite browserului și serverului să comunice fără a fi nevoie să reîncărcați pagina.

  1. Utilizatorul face clic pe o miniatură a produsului în magazinul online.
  2. JavaScript care rulează pe browser generează o cerere AJAX către scriptul PHP care rulează pe server, trecând ID-ul produsului selectat.
  3. Scriptul PHP primește numele produsului, descrierea, prețul și alte informații din baza de date. Apoi compune un șir JSON din date și îl trimite către browser.
  4. JavaScript care rulează în browser primește un șir JSON, îl decodează și afișează informațiile despre produs în pagină pentru utilizator.

De asemenea, puteți utiliza JSON pentru a trimite date de la browser la server, trecând un șir JSON ca parametru la o solicitare GET sau POST. Cu toate acestea, această metodă este mai puțin frecventă, deoarece trecerea datelor prin cereri AJAX poate fi simplificată. De exemplu, ID-ul produsului poate fi inclus în adresa URL ca parte a cererii GET.

Biblioteca jQuery are mai multe metode, cum ar fi getJSON () și parseJSON (), care facilitează obținerea datelor folosind JSON prin cereri AJAX.

Cum creez un șir JSON?

Există câteva reguli de bază pentru crearea unui șir JSON:

  • Șirul JSON conține fie o matrice de valori, fie un obiect (o matrice asociativă de perechi nume / valoare).
  • Matrice cuprins între paranteze pătrate ([și]) și conține o listă de valori separate prin virgulă.
  • Un obiect este închis între paranteze ((și)) și conține o listă de perechi nume / valoare separate prin virgulă.
  • Pereche nume / valoare constă din numele câmpului, cuprins între ghilimele duble, urmat de două puncte (:) și valoarea câmpului.
  • Valoare într-o matrice sau obiect poate fi:
    • Număr (număr întreg sau virgulă mobilă)
    • Șir (între ghilimele duble)
    • Valoare booleană (adevărată sau falsă)
    • O altă matrice (între paranteze drepte)
    • Un alt obiect (închis în aparate dentare)
    • Valoare nulă

Pentru a include ghilimele duble într-un șir, trebuie să utilizați o bară inversă: \\ ". La fel ca în multe limbaje de programare, puteți pune caractere de control și coduri hexazecimale într-un șir, precedate de o bară inversă. Consultați site-ul JSON pentru detalii.

Un exemplu simplu de șir JSON

Mai jos este un exemplu de comandare în format JSON:

("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail protejat]"," conținut ": [(" productID ": 34," productName ":" Super produs "," cantitate ": 1), (" productID ": 56," productName ":" produs minunat "," cantitate ": 3)], "orderCompleted": adevărat)

Luați în considerare linia în detaliu:

  • Creăm un obiect folosind acolade ((și)).
  • Obiectul are mai multe perechi nume / valoare: "orderID": 12345 Proprietatea numită "orderId" și valoarea întreagă 12345 "shopperName": "Vanya Ivanov" proprietate numită "shopperName" și valoarea șirului "Vanya Ivanov" "shopperEmail": " [e-mail protejat]„Proprietatea denumită„ shopperEmail ”și valoarea șirului„ [e-mail protejat]"" content ": [...] O proprietate numită" contents "a cărei valoare este o matrice" orderCompleted ": true O proprietate numită" orderCompleted "cu o valoare booleană true
  • Există 2 obiecte în matricea „conținut” care reprezintă articolele individuale din comandă. Fiecare obiect conține 3 proprietăți: productID, productName și cantitate.

Apropo, deoarece JSON se bazează pe declararea obiectelor JavaScript, puteți transforma rapid și ușor șirul JSON de mai sus într-un obiect JavaScript:

Compararea JSON și XML

În multe feluri, vă puteți gândi la JSON ca la o alternativă la XML, cel puțin pentru aplicațiile web. Conceptul de AJAX s-a bazat inițial pe utilizarea XML pentru a transfera date între server și browser. Dar, în ultimii ani, JSON a devenit din ce în ce mai popular pentru transportul datelor AJAX.

În timp ce XML este o tehnologie dovedită care este utilizată într-un număr destul de mare de aplicații, avantajele JSON sunt că este un format de date mai compact și mai ușor de înțeles.

Așa arată exemplul XML de mai sus:

orderID 12345 shopperName Ваня Иванов shopperEmail [email protected] contents productID 34 productName Супер товар quantity 1 productID 56 productName Чудо товар quantity 3 comandă finalizată adevărat

Versiunea XML este semnificativ mai mare. Are de fapt 1128 de caractere, în timp ce varianta JSON are doar 323 de caractere. Versiunea XML este, de asemenea, dificil de citit.

Desigur, acesta este un exemplu radical. Și este posibil să creați o înregistrare XML mai compactă. Dar chiar va fi mult mai lung decât echivalentul JSON.

Lucrul cu un șir JSON în JavaScript

JSON are un format simplu, dar crearea manuală a unui șir JSON este obositoare. În plus, trebuie adesea să luați un șir JSON, să-i convertiți conținutul într-o variabilă care poate fi utilizată în cod.

Majoritatea limbajelor de programare au instrumente pentru a converti cu ușurință variabilele în șiruri JSON și invers.

Creați un șir JSON dintr-o variabilă

JavaScript are o metodă încorporată JSON.stringify () care ia o variabilă și returnează un șir JSON reprezentând conținutul acesteia. De exemplu, să creăm un obiect JavaScript care conține informațiile despre comandă din exemplul nostru și apoi să creăm un șir JSON din acesta:

Acest cod va da:

Rețineți că metoda JSON.stringify () returnează un șir JSON fără spații. Este mai dificil de citit, dar mai compact pentru transmiterea prin rețea.

Există mai multe moduri de a analiza un șir JSON în JavaScript, dar cea mai sigură și mai fiabilă este utilizarea metodei JSON.parse () încorporată. Acesta primește un șir JSON și returnează un obiect JavaScript sau o matrice care conține datele. De exemplu:

Am creat o variabilă jsonString care conține șirul JSON al exemplului nostru de comandă. Apoi trecem acest șir la metoda JSON.parse (), care creează un obiect care conține datele JSON și le stochează în variabila coș. Tot ce rămâne este să verificați imprimând proprietățile obiectului shopperEmail și numele produsului matricei de conținut.

Ca rezultat, obținem următoarea ieșire:

Într-o aplicație reală, codul dvs. JavaScript va primi comanda ca un șir JSON în răspunsul AJAX de la scriptul serverului, va transmite șirul la metoda JSON.parse () și apoi va utiliza datele pentru a afișa pe pagina utilizatorului.

JSON.stringify () și JSON.parse () au alte capacități, cum ar fi utilizarea funcțiilor de apel invers pentru a converti datele specifice. Aceste opțiuni sunt foarte utile pentru a converti diferite date în obiecte JavaScript valide.

Lucrul cu un șir JSON în PHP

PHP, ca și JavaScript, are funcții încorporate pentru lucrul cu șiruri JSON.

Creați șir JSON din variabila PHP

Funcția json_encode () ia o variabilă PHP și returnează un șir JSON reprezentând conținutul variabilei. Iată exemplul nostru de comandă scrisă în PHP:

12345, "shopperName" \u003d\u003e "Vanya Ivanov", "shopperEmail" \u003d\u003e " [e-mail protejat]"," contents "\u003d\u003e array (array (" productID "\u003d\u003e 34," productName "\u003d\u003e" Super produs "," quantity "\u003d\u003e 1), array (" productID "\u003d\u003e 56," productName "\u003d\u003e „Produs minune”, „cantitate” \u003d\u003e 3)), „orderCompleted” \u003d\u003e adevărat); echo json_encode ($ cart);?\u003e

Acest cod returnează exact același șir JSON ca în exemplul JavaScript:

("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail protejat]"," conținut ": [(" productID ": 34," productName ":" Super produs "," cantitate ": 1), (" productID ": 56," productName ":" produs minunat "," cantitate ": 3)], "orderCompleted": adevărat)

Într-o aplicație reală, scriptul dvs. PHP va trimite acest șir JSON ca parte a răspunsului AJAX către browser, unde codul JavaScript folosește metoda JSON.parse () pentru a-l converti înapoi într-o variabilă pentru afișare pe pagina utilizatorului.

Puteți trece diverse stegulețe ca al doilea argument funcției json_encode (). Cu ajutorul lor, puteți schimba principiile de codificare a conținutului variabilelor într-un șir JSON.

Creați o variabilă dintr-un șir JSON

Metoda json_decode () este utilizată pentru a converti un șir JSON într-o variabilă PHP. Să înlocuim exemplul nostru JavaScript cu metoda JSON.parse () cu cod PHP:

shopperEmail. "
"; echo $ cart-\u003e content-\u003e productName."
"; ?>

În ceea ce privește JavaScript, acest cod va produce:

[e-mail protejat] Produs miracol

În mod implicit, funcția json_decode () returnează obiectele JSON ca obiecte PHP. Există obiecte PHP generice din clasa stdClass. Prin urmare, folosim -\u003e pentru a accesa proprietățile obiectului din exemplul de mai sus.

Dacă doriți un obiect JSON ca matrice PHP asociată, trebuie să treceți true ca al doilea argument funcției json_decode (). De exemplu:

$ cart \u003d json_decode ($ jsonString, adevărat); echo $ cart ["shopperEmail"]. "
"; echo $ cart [" content "] [" productName "]."
";

Acest cod va da aceeași ieșire:

[e-mail protejat] Produs miracol

De asemenea, puteți trece alte argumente la json_decode () pentru a specifica profunzimea recursiunii și cum să gestionați numere întregi mari.

Concluzie

Deși JSON este ușor de înțeles și de utilizat, este un instrument foarte util și flexibil pentru transferul de date între aplicații și computere, în special atunci când se utilizează AJAX. Dacă intenționați să dezvoltați o aplicație AJAX, atunci nu există nicio îndoială că JSON va deveni cel mai important instrument din atelierul dvs.

Json (Notare obiect JavaScript) este un format structurat de prezentare a datelor utilizat pentru a transfera date pe internet.

De fapt, formatul JSON este un șir obișnuit.

Sintaxa JSON

Sintaxa JSON este destul de mică, include doar o descriere a aspectului datelor transmise.

Tipuri de date JSON

În JSON, tipurile de date pot fi împărțite în două categorii: simple și complexe.

  • şir - șiruri de text (denumite de obicei simplu - șiruri)
  • număr - numere
  • boolean - valori logice (booleene)
  • nul

Tipurile complexe includ:

  • obiect - obiecte
  • matrice - matrice

Sintaxa JSON este împrumutată de la JavaScript, deci sintaxa este aceeași ca în JavaScript pentru a reprezenta valori de tipuri simple și complexe.

Valori simple

Cel mai simplu exemplu de cod JSON este orice valoare de tip simplu:

5 2.3 "Bună ziua!" adevărat nul

În JSON, șirurile trebuie să fie încadrate numai între ghilimele duble. Utilizarea ghilimelelor unice duce la o eroare de sintaxă.

Obiecte

Un obiect JSON este o listă de zero sau mai multe proprietăți (nume: perechi de valori) închise între acolade, separate prin virgule. Numele proprietăților obiectelor trebuie să fie incluse între ghilimele duble. Lipsește ghilimele duble sau utilizarea ghilimelelor simple în numele proprietății este o eroare. Proprietățile pot conține valori de orice tip (simple sau complexe):

("nume": "Gomer", "vârstă": 40, "muncă": ("loc": "Centrală nucleară", "locație": "Springfield"))

Matrice

O matrice JSON este o listă separată prin virgule cu zero sau mai multe valori, încadrată între paranteze drepte. O matrice poate conține valori de orice tip (simple sau complexe):

[("nume": "Gomer", "vârstă": 40, "muncă": ("loc": "Centrală nucleară", "locație": "Springfield"), "copii": ["Bart", "Lisa "," Maggie "]), (" nume ":" Marge "," vârstă ": 37," muncă ": (" loc ":" Acasă "," locație ":" Springfield ")," copii ": [ „Bart”, „Lisa”, „Maggie”])]

Ce este JSON și de ce este capabil? În acest articol, veți afla cum să utilizați JSON pentru a lucra cu date cu ușurință. Vom analiza, de asemenea, cum să lucrați cu JSON folosind PHP și JavaScript.

Dacă ați dezvoltat site-uri web sau aplicații web în general, este posibil să fi auzit despre JSON, cel puțin în treacăt. Dar ce înseamnă exact JSON? Ce poate face acest format de date și cum să îl utilizați?

În acest articol, vom învăța noțiunile de bază despre lucrul cu formatul json. Vom urmări următoarele subiecte:

  • Ce este formatul JSON?
  • Cum creez șiruri JSON?
  • Un exemplu simplu de date JSON
  • Compararea JSON cu XML

Să începem!

Ce este formatul JSON?

JSON este un mod simplu, bazat pe text, de a stoca și transmite date structurate. Cu o sintaxă simplă, puteți salva cu ușurință atât numere și șiruri simple, cât și matrici, obiecte, folosind nimic mai mult decât text. De asemenea, puteți lega obiecte și tablouri, ceea ce vă permite să creați structuri de date complexe.

După crearea unui șir JSON, acesta poate fi trimis cu ușurință către orice aplicație sau computer, deoarece este doar text.

JSON are multe avantaje:

  • Este compact
  • Este lizibil de către om și poate fi citit de computer
  • Poate fi ușor convertit în formate programatice: valori numerice, șiruri, format boolean, valoare zero, tablouri și tablouri asociative.
  • Aproape toate limbajele de programare au funcții pentru a citi și a crea formatul de date json.

Literal, abrevierea JSON înseamnă JavaScript Object Notation. Așa cum s-a descris mai devreme, acest format se bazează pe crearea de obiecte, oarecum similar cu tablourile asociative din alte limbaje de programare.

La ce se folosește JSON?

Mai presus de toate, json este folosit pentru a face schimb de date între javascript și partea server (php). Cu alte cuvinte, pentru tehnologia ajax. Acest lucru este foarte util atunci când treceți mai multe variabile sau matrici întregi de date.

Cum arată cu un exemplu:

  1. Utilizatorul face clic pe imagini cu miniaturi
  2. JavaScript gestionează acest eveniment și trimite o cerere ajax către scriptul PHP, trecând ID-ul imaginii.
  3. Pe server, php primește descrierea imaginii, numele imaginii, adresa imaginii mari și alte informații din baza de date. După ce l-a primit, îl convertește în format JSON și îl trimite înapoi la pagina utilizatorului.
  4. JavaScript primește un răspuns JSON, procesează datele, generează cod html și afișează o imagine mărită cu descriere și alte informații.

Așa crește imaginea fără a reîncărca pagina din browser. Acest lucru este foarte convenabil atunci când trebuie să primim date parțiale sau să transferăm o cantitate mică de informații către server.

Fiecare jQuery preferat are funcții getJSON () și parseJSON (), care ajută la lucrul cu formatul prin cereri ajax.

Cum creez șiruri JSON?


Mai jos sunt regulile de bază pentru crearea șirurilor JSON:

  • Șirul JSON conține atât o matrice de valori, cât și un obiect (o matrice asociativă cu perechi nume / valoare).
  • Matricea trebuie să fie înfășurată între paranteze pătrate, [și], poate conține o listă de valori, separate prin virgule.
  • Obiectele se înfășoară cu brațele cretate, (și), conțin, de asemenea, perechi de nume / valoare separate de comă.
  • Perechile nume / valoare constau din numele câmpului (între ghilimele duble) urmat de două puncte (:) urmat de valoarea câmpului dat.
  • Valorile dintr-o matrice sau obiect pot fi:
    • Numeric (punct întreg sau zecimal)
    • Șir (înfășurat în ghilimele duble)
    • Boolean (adevărat sau fals)
    • Alte matrice (înfășurate în paranteze pătrate [și])
    • Alte obiecte (înfășurate în arc (uri) cret)
    • Nul

Important! Dacă utilizați ghilimele duble în valori, scăpați-le cu o bară inversă: \\ ". De asemenea, puteți utiliza caractere codificate hexagonal, așa cum faceți în alte limbaje de programare.

Un exemplu simplu de date JSON

Următorul exemplu arată cum puteți salva date în „coșul de cumpărături” al unui magazin online utilizând formatul JSON:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protejat]"," content ": [(" productID ": 34," productName ":" SuperWidget "," quantity ": 1), (" productID ": 56," productName ":" WonderWidget "," quantity ": 3) ], "orderCompleted": true)

Să descompunem aceste date bucată cu bucată:

  1. La început și la sfârșit, folosim arc (e) cret (e) care clarifică faptul că acesta este un obiect.
  2. În interiorul obiectului, avem mai multe perechi nume / valoare:
  3. "orderID": 12345 - câmpul denumit orderId și valoarea 12345
  4. "shopperName": "John Smith" - câmp numit shopperName și valoare John Smith
  5. " shopperEmail ":"[e-mail protejat] exemplu.com " - în mod similar cu câmpul anterior, e-mailul clientului este stocat aici.
  6. „conținut”: [...] - un câmp denumit conținut a cărui valoare este o matrice.
  7. „orderCompleted”: adevărat - un câmp numit orderCompleted, a cărui valoare este adevărată
  8. În interiorul matricei de conținut, avem două obiecte care afișează conținutul coșului. Fiecare obiect de produs are trei proprietăți: ID-ul produsului, Numele produsului, cantitatea.

În cele din urmă, deoarece JSON este identic cu obiectele din JavaScript, puteți lua cu ușurință acest exemplu și puteți crea un obiect JavaScript din acesta:

Compararea JSON cu XML

În majoritatea cazurilor, vă veți gândi la JSON ca la o alternativă la XML - cel puțin pentru aplicațiile web. Conceptul de Ajax, folosește inițial XML pentru a schimba date între server și browser, dar în ultimii ani JSON a devenit mai popular pentru transferul de date ajax.

Deși XML este o tehnologie încercată și este utilizată de multe aplicații, avantajul formatului JSON este că este mai compact și mai ușor de scris și de citit.

Iată exemplul JSON de mai sus, rescris doar în format XML:

orderID 12345 shopperName John Smith shopperEmail [email protected] contents productID 34 productName SuperWidget quantity 1 productID 56 productName WonderWidget quantity 3 comandă finalizată adevărat

După cum puteți vedea, este de câteva ori mai lung decât JSON. De fapt, acest exemplu are 1128 de caractere, în timp ce versiunea JSON are doar 323 de caractere. De asemenea, versiunea XML este mai greu de citit.

Bineînțeles, nu se poate judeca după un singur exemplu, dar chiar și cantități mici de informații ocupă mai puțin spațiu în format JSON decât în \u200b\u200bXML.

Cum se lucrează cu JSON prin PHP și JS?

Așa că ajungem la cea mai interesantă parte - partea practică a formatului JSON. Mai întâi, să aducem un omagiu lui JavaScript, apoi vom vedea cum puteți manipula JSON prin PHP.

Crearea și citirea formatului JSON folosind JavaScript


În ciuda faptului că formatul JSON este simplu, este dificil să-l scrieți manual când dezvoltați aplicații web. Mai mult, trebuie adesea să convertiți șirurile JSON în variabile și apoi să le utilizați în cod.

Din fericire, multe limbaje de programare oferă instrumente pentru lucrul cu șirurile JSON. Principala idee a cărei:

FăpturăȘiruri JSON, începeți cu variabile care conțin unele valori, apoi le treceți printr-o funcție care transformă datele într-un șir JSON.

CitindȘiruri JSON, începeți cu un șir JSON care conține date specifice, treceți șirul printr-o funcție care creează variabile care conțin datele.

Să vedem cum se face acest lucru în JavaScript.

Creați un șir JSON dintr-o variabilă JavaScript

JavaScript are o metodă încorporată, JSON.stringify (), care ia o variabilă javascript și returnează un șir json reprezentând conținutul variabilei. De exemplu, să folosim obiectul creat anterior, să-l convertim într-un șir JSON.

Iată ce va fi afișat:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protejat]"," content ": [(" productID ": 34," productName ":" SuperWidget "," quantity ": 1), (" productID ": 56," productName ":" WonderWidget "," quantity ": 3) ], "orderCompleted": true)

Rețineți că JSON.stringify () scoate șiruri JSON fără spații. Greu de citit, dar mai compact, ceea ce este important la transferul de date.

Creați o variabilă JavaScript dintr-un șir JSON

Există mai multe moduri de a analiza șirurile JSON, cea mai acceptabilă și mai sigură este metoda JSON.parse (). Acceptă un șir JSON și returnează un obiect JavaScript sau o matrice care conține date JSON. Iată un exemplu:

Aici am creat o variabilă, jsonString, care conține șirul JSON din exemplele furnizate anterior. Apoi am trecut acest șir prin JSON.parse () pentru a crea un obiect care conține date JSON care sunt stocate în variabila coș. În cele din urmă, verificăm disponibilitatea datelor și afișăm câteva informații folosind fereastra modală de alertă.

Următoarele informații vor fi afișate:

Într-o aplicație web reală, codul dvs. JavaScript ar trebui să accepte un șir JSON ca răspuns de la server (după trimiterea unei cereri AJAX), apoi să analizeze șirul și să afișeze utilizatorului datele despre conținutul coșului.

Crearea și citirea formatului JSON cu PHP


PHP, la fel ca JavaScript, are funcții pentru a converti variabilele în format JSON și invers. Să le aruncăm o privire.

Generarea șirului JSON din variabila PHP

Json_encode () ia o variabilă PHP și returnează un șir JSON reprezentând datele variabilei. Iată exemplul nostru de „coș” scris în PHP:

12345, "shopperName" \u003d\u003e "John Smith", "shopperEmail" \u003d\u003e " [e-mail protejat]xample.com "," contents "\u003d\u003e array (array (" productID "\u003d\u003e 34," productName "\u003d\u003e" SuperWidget "," quantity "\u003d\u003e 1), array (" productID "\u003d\u003e 56," productName " \u003d\u003e "WonderWidget", "quantity" \u003d\u003e 3)), "orderCompleted" \u003d\u003e true); echo json_encode ($ cart);?\u003e

Acest cod produce exact același rezultat ca și exemplul JavaScript - un șir JSON valid care reprezintă conținutul variabilelor:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protejat]"," content ": [(" productID ": 34," productName ":" SuperWidget "," quantity ": 1), (" productID ": 56," productName ":" WonderWidget "," quantity ": 3) ], "orderCompleted": true)

În realitate, scriptul dvs. PHP ar trebui să trimită un șir JSON ca răspuns la o cerere AJAX, unde JavaScript va folosi JSON.parse () pentru a transforma șirul în variabile.

În funcția json_encode (), puteți specifica parametri suplimentari care vă permit să convertiți unele caractere în hex.

Crearea variabilei PHP din șirul JSON

Similar cu cele de mai sus, există o funcție json_decode () care vă permite să decodați șirurile JSON și să puneți conținutul în variabile.

shopperEmail. "
"; echo $ cart-\u003e content-\u003e productName."
"; ?>

Ca și în cazul JavaScript, acest cod va afișa următoarele:

[e-mail protejat] WonderWidget

În mod implicit, json_decode () returnează obiectele JSON ca obiecte PHP. Similar cu sintaxa familiară, folosim -\u003e pentru a accesa proprietățile obiectului.

Dacă pe viitor doriți să utilizați datele sub forma unui tablou asociativ, treceți doar al doilea parametru adevărat funcției json_decode (). Iată un exemplu:

$ cart \u003d json_decode ($ jsonString, adevărat); echo $ cart ["shopperEmail"]. "
"; echo $ cart [" content "] [" productName "]."
";

Astfel se obține același rezultat:

[e-mail protejat] WonderWidget

De asemenea, argumente suplimentare pot fi transmise funcției json_decode () pentru a determina procesarea numerelor mari și recursivitatea.

În concluzie despre formatul JSON

Dacă aveți de gând să creați o aplicație web utilizând tehnologia Ajax, utilizați fără îndoială formatul JSON pentru a face schimb de date între server și browser.


Anunţ

Formatul fișierului site-ului web JSON

Fișierele JSON sunt utilizate pentru a stoca structuri de matrice simple de date utilizând un format bazat pe text citibil de către om. Inițial, fișierele JSON erau strâns legate de limbajul de programare JavaScript, dar datorită faptului că acest format acceptă în prezent un număr mare de API-uri de programare, acesta poate fi considerat ca un format care nu este legat de niciun limbaj de programare. Această alternativă la XML este cea mai frecvent utilizată de aplicațiile web Ajax.

Detalii tehnice pentru fișierele JSON

Fișierele JSON sunt utilizate ca fișiere pentru schimbul de date. Acest schimb are loc adesea între computerele conectate prin Internet. Astfel, este foarte rar ca fișierele JSON să fie salvate pe hard diskul unui computer. Unele aplicații, totuși, folosesc în continuare acest format. De exemplu, datele profilului Google+ sunt salvate și încărcate în format JSON, iar browserul web Mozilla Firefox folosește acest format pentru a stoca copii de rezervă ale marcajelor.

Mai multe informații despre formatul JSON



Extensie de fișier .json
Categoria fișierului
Exemplu de fișier (0,57 KiB)
Programe conexe Notepad Microsoft
Microsoft WordPad
Notepad ++
Mozilla Firefox