internetul Windows. Android

JavaScript - Json și lucrul cu el. Introducere în JSON Ce fișier JSON TXT

Anunț

Formatul fișierului site-ului JSON

Fișierele JSON sunt utilizate pentru a stoca structurile unor matrice simple de date utilizând un format bazat pe text, care poate citi o persoană. Inițial, fișierele JSON au fost strâns legate de limba de programare JavaScript, dar datorită faptului că acest format sprijină în prezent un număr mare de API-uri software, acesta poate fi considerat un format care nu este atașat la niciuna dintre limbile de programare. Această alternativă la formatul XML este cea mai des utilizată de aplicațiile web AJAX.

JSON Informații tehnice

Fișierele JSON sunt utilizate ca fișiere pentru schimbul de date. Un astfel de schimb apare adesea între computerele conectate prin Internet. Astfel, fișierele foarte rare cu extensia JSON sunt salvate pe hard diskul calculatorului. Cu toate acestea, unele aplicații utilizează în continuare acest format. De exemplu, datele profilului Google + sunt salvate și încărcate în format JSON, iar browserul Web Mozilla Firefox utilizează fișierele acestui format pentru stocarea marcajelor de rezervă.

Informații suplimentare JSON.

Lecția în care este considerată ce este JSON și care are avantaje în comparație cu alte formate de date.

Concept Json.

JSON (Notation Object JavaScript) este un format text al prezentării datelor în notația obiectului JavaScript.

Aceasta înseamnă că datele din JSON sunt organizate, precum și în obiectul JavaScript. Dar, spre deosebire de ultimul format de înregistrare JSON, are unele caracteristici care vor fi considerate puțin mai târziu.

JSON este de obicei folosit în pachete cu Ajax, astfel încât serverul să poată transmite datele într-o formă convenabilă a scriptului JavaScript, care apare apoi pe pagină.

Structura formatului JSON.

Cine este familiarizat cu procesul de creare a obiectelor în JavaScript, nu va vedea nimic nou în structura formatului JSON. Acest lucru se datorează faptului că structura JSON corespunde structurii obiectului JavaScript cu unele limitări.

Vă puteți imagina cu ușurință JSON ca un container compus din elemente. Fiecare element dintr-un astfel de container este o unitate structurală constând dintr-o cheie și valoare.

În același timp, valoarea este direct legată de cheia și formează așa-numita pereche de valori cheie. Pentru a obține o valoare într-un astfel de obiect, trebuie să cunoașteți cheia sa. Din punct de vedere sincetric, astfel de date din JSON sunt scrise după cum urmează:

În înregistrarea de mai sus, este clar că cheia este separată de valoarea utilizând semnul colonului (:). În acest caz, cheia din obiectul JSON trebuie să fie închisă în citate dublă. Aceasta este prima caracteristică JSON care o deosebește de obiectul JavaScript. pentru că În obiectul JavaScript, cheia (proprietatea obiectului) nu trebuie să fie închisă în citate dublă.

De exemplu, structura unui obiect care este valabil din punct de vedere al JavaScript și nu este valabil din punctul de vedere al JSON:

VAR PERSON \u003d (Nume: "Ivan";) // JavaScript Obiect

AVERTISMENT: Încercați numele cuvântului cheie, astfel încât să nu complicați accesul la date, adică Când elaborați un nume, este de preferat să rămâneți la notația cămilă sau să utilizați pentru a conecta semnul subcutului de fund ("_").

Valoarea-cheie din JSON poate fi înregistrată într-una din următoarele formate: șir (linie), număr (număr), obiect (obiect), matrice (matrice), boolean (valoare reală sau falsă logică), nulă (valoare specială JavaScript) .

aceasta a doua limită din JSON, pentru că Obiectul JavaScript poate conține orice tip de date, inclusiv funcția.

VAR PERSOANĂ \u003d ("NAME": "Ivan"; "SetName": Funcție () (Console.log (acest nume);))) // JavaScript Obiect

Pentru a separa un element (pereche-cheie cheie) de la celălalt, se utilizează semnul virg.

De exemplu, ia în considerare JSON constând din diverse tipuri de date.

Atenție: Formatul de reprezentare a datelor JSON nu permite utilizarea comentariilor în interiorul structurii sale.

Lucrați cu JSON în JavaScript

Spre deosebire de obiectul JavaScript JSON este un șir.

De exemplu:

// de exemplu, variabila persondata conține un șir care reprezintă JSON VAR PERSONDATA \u003d "(" Nume ":" Ivan "," Vârsta ": 37," Mama ": (" Nume ":" Olga "," Vârsta ": 58), "Copii": ["Masha", "Igor", "Tanya"], "căsătorit": adevărat ", câine": null) ";

Lucrarea JSON este de obicei efectuată în două direcții:

  1. Parsarea este o traducere a unui șir care conține JSON la obiectul JavaScript.
  2. Conversia obiectului JavaScript în șirul JSON. Cu alte cuvinte, această acțiune efectuează conversia parsului invers.

JSON Parseer.

JSON Parsing, adică Transferul JSON Row la obiectul JavaScript se efectuează utilizând metoda Eval () sau parse ().

Folosind metoda Eval ():

// variabila persoana este un obiect JavaScript, care este obtinut prin executarea codului (string) JSON VAR PERSON \u003d EVAL ("(+ persongata +") ");

Folosind metoda json.parse ():

// o persoană variabilă este un obiect JavaScript, primit de JSON VAR Person \u003d JSON.PARSAR String (Persondata);

Convertiți obiectul JavaScript în JSON String

Obiectul JavaScript din String-ul JSON se realizează folosind metoda JSON.Stringify (). Această metodă efectuează metoda inversă json.parse ().

VAR Personal \u003d JSON.StriGify (persoană);

Avantajele formatului JSON

Formatul de reprezentare a datelor JSON are următoarele avantaje:

  • convenabil și rapid în metodele de lucru destinate conversiilor (parsare) JSON String la obiectul JavaScript și înapoi;
  • structura de date de înțeles și simplă;
  • dimensiune foarte mică în comparație cu alte formate de date (de exemplu, XML). Acest lucru se datorează faptului că formatul JSON conține formatul minim posibil, adică. Când este scris, sunt utilizate doar câteva caractere speciale. Acesta este un avantaj foarte important, pentru că Datele prezentate în format JSON vor fi încărcate mai repede decât dacă au fost prezentate în alte formate.

Datorită faptului că acest format are multe avantaje. A fost aplicată nu numai în JavaScript, ci în multe alte limbi, cum ar fi C, Ruby, Perl, Python, PHP etc.

Compararea formatelor JSON și XML

Formatul JSON are următoarele avantaje față de formatul XML:

  1. La transmiterea unor date, dimensiunea JSON va fi semnificativ mai mică decât dimensiunea XML.
  2. JSON are metode mai convenabile de conversie în structurile de date JavaScript decât XML.
  3. JSON este simplu de creat decât XML.

Lucrați cu datele JSON după efectuarea parsului cu obiectul JavaScript.

// JSON VAR PERSONDATA \u003d "(" Nume ":" Ivan "," Vârsta ": 37," Mama ": (" Nume ":" Olga "," Vârsta ": 58)," Copii ": [" Masha " , Igor, Tanya], "căsătorit": adevărat ", câine": null) "; // JavaScript Persoana Object Var Persoana \u003d Json.Parse (Persondata);

Luați în considerare principalele puncte:

// obțineți valorile cheie (proprietăți) nume de nume. Persoană ["nume"]; // obțineți valorile cheie (proprietățile) ale numelui situat în obiectul mamă.Mother.name obiect; // ștergeți elementul de ștergere a vârstei // Adăugați (sau actualizare) tasta (proprietate) persoană.eye \u003d "maro"; // Când lucrați cu matrice, este necesar să se utilizeze metode concepute pentru a lucra cu matrice. Apăsați ("Katya");

Pentru arderea elementelor în obiect, puteți utiliza ciclul pentru ...

Pentru (dacă persoana.hasownproperty (cheie)) (// cheie \u003d tasta // valoare \u003d consola personală ("cheie \u003d" + cheie); console.log ("valoare \u003d" + persoană);) // dacă Obiectul persoanei are cheie (dacă persoana are o proprietate cheie)) // reciclați toate cheile (proprietățile) în obiect

Pentru elementele enorme ale matricei, puteți utiliza următorul ciclu:

Pentru (var i \u003d 0; i

JSON este un format de înregistrare a datelor text. Acesta permite formularul de text să-și imagineze atât un număr separat, cât și un șir și structuri complexe, cum ar fi matrice cu date. Utilizarea acestui format de înregistrare este convenabilă deoarece este citită și înțeleasă intuitiv, în același timp vă permite să salvați structuri de date foarte complexe. În plus, este mai compactă decât XML, așa că în opinia mea este mai preferată să schimb date între browserul web și server.

Sintaxa JSON pe exemple

Formatul JSON este de obicei scris în 2 versiuni:

1. Secvența valorilor. De exemplu, o secvență de 10, 15 și "test" în format JSON va arăta astfel:

2. Înregistrarea sub formă de abur valoare cheie . De exemplu:

("Numele complet": "Ivanov Serghei", "Data nașterii": "03/09/1975")

Un exemplu mai complex exemplu:

("Numele complet": "Ivanov Serghei", "Adresa": ("City": "Moscova", "Strada": "Pyatnitskaya", "Casa": "35")

Funcții PHP pentru lucrul cu format JSON

În limba PHP, începând cu versiunea 5.2. Există doar 4 funcții:

  • json_decode. - decodează șirul JSON (datele din rândul Format JSON)
  • json_encode. - returnează prezentarea de date JSON (convertește datele la șirul JSON)
  • json_last_error_msg. - Returnează un șir cu mesajul despre ultimul apel JSON_ENCODE () sau JSON_DECODE ()
  • json_last_error. - returnează ultima eroare

Practic, în cea mai mare parte, se folosesc doar două funcții: json_encode. și json_decode.. Nu voi intra în detaliile sintaxei lor, puteți căuta mai multe detalii despre PHP.NET. Exemplu de utilizare:

$ arr1 \u003d matrice (0,1,2); $ json_str \u003d json_encode ($ arr1); Echo $ json_str; // eliminați șirul JSON: $ ARR2 \u003d JSON_DECODE ($ JSON_STR); ECHO $ \u200b\u200bARR2; // va ieși: 1

Notă : pentru codificarea datelor în format JSON în limba rusă, Caracteristica JSON_ENCODE convertește caracterele rusești în unicode. Le înlocuiește \\ uxxxx. Și astfel, linia JSON nu poate fi citită pentru o persoană (dar ușor de înțeles pentru browser). Dacă trebuie să vă transformați în Unicode, nu apare (de exemplu, la codul de depanare), puteți folosi pur și simplu opțiunea JSON_UNESCAPED_UNICODE.

De asemenea, atunci când codificarea, se adaugă la scuturi și că rândurile cu numere sunt codificate ca numere, puteți utiliza json_unescaped_slashes și json_numeric_check. Ca rezultat, linia JSON va fi citită pentru o persoană, de exemplu, după cum urmează:

$ arr \u003d matrice ("fio" \u003d\u003e "Ivanov serghie", "vârstă" \u003d\u003e "32", "vk_url" \u003d\u003e "https://vk.com/id11111"); Echo JSON_ENCODE ($ ARR, JSON_UNECAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);

Fără utilizarea acestor opțiuni, șirul ar fi așa:

("Fio": "\\ u0418 \\ u0432 \\ u0430 \\ u0432 \\ u0435 \\ u0433 \\ u0421 \\ u0432 \\ u0435 \\ u0432 \\ u0435 \\ u0432 \\ u0435 \\ u0432 \\ u0435 \\ u0432 \\ u0421 \\ u0432 \\ u0435 \\ u0432 \\ u0435 \\ u0432 \\ / id11111 ")

Și folosind opțiuni, primim un șir lider:

("FIO": "Ivanov Serghei", "Vârsta": 32, "VK_URL": "https://vk.com/id11111")

Un alt punct: dacă doriți la decodarea unei funcții JSON Row json_decode returnează o matricePur și simplu adăugați un al doilea parametru la funcția egală cu adevărat.

$ json_str \u003d "(" A ": 1," B ": 2," C ": 3)"; $ Obj \u003d json_decode ($ json_str); // obținem un obiect Echo $ obj-\u003e un obiect; // retrage 1 $ arr \u003d json_decode ($ json_str, true); // obținem o serie asociativă de echo $ ARR ["A"]; // va ieși 1.

Această considerație a funcțiilor PHP va fi finalizată.

Funcțiile JavaScript pentru lucrul cu format JSON

Să începem cu faptul că formatul JSON a fost inventat inițial pentru limba JavaScript și apoi a devenit doar un format de text separat utilizat în diferite limbi. Aparent, prin urmare, sintaxa JSON este foarte asemănătoare cu sintaxa înregistrării obiectelor și a matricei obișnuite.

// un exemplu de matrice în javascript arr \u003d; Alertă (ARR); // Will Out 1 // Obiect de exemplu în JavaScript Obj \u003d ("Nume": "Vasya", "Vârsta": 35 "Isadmin": false) Alertă (obj.name); // va "vasya"

Funcțiile JavaScript utilizate pentru a converti în format JSON și înapoi:

  • Json.parse. - Decodarea șirului JSON (transformarea liniei în obiecte și / sau arrays)
  • Json.Stringfy. - returnează vizualizarea JSON a datelor (convertiți obiecte și / sau arrays în șirul JSON)

Exemplu simplu de decodare a șirului JSON într-o matrice cu numere:

Str \u003d ""; Arr \u003d json.parse (str); Alertă (ARR); // va ieși 1.

Un exemplu de conversie (serializare) a unui obiect din String-ul JSON:

Obj \u003d ("nume": "Vasya", "Vârsta": 35 "Isadmin": false) Alertă (JSON.Stringifying (Obj)); // Eliminare ("Nume": "Vasya", "Vârsta": 35, "Isadmin": FALSE)

Când serializarea (transformarea) unui obiect în șirul JSON, se numește o metodă tOJSON. Acest obiect, dacă există. Dacă nu există nicio metodă, atunci toate proprietățile obiectului sunt listate. Un exemplu de conversie a obiectului cu metoda TOJSON:

Obj \u003d ("Nume": "Vasya", "Vârsta": 35, "Isadmin": FALSE, TOJSON: FUNCȚIA () (returnare ")) Alertă (JSON.Stringfy (Obj)); // va ieși 35.

Exemple de aplicații practice JSON-Format

De fapt, personal, folosesc formatul JSON în 2 situații principale:

1. Transferarea datelor între browser și server utilizând cererile AJAX.

De exemplu, avem un fel de pagină pe care doriți să actualizați datele fără a reporni pagina. Să presupunem că este necesar ca informațiile cu lista angajaților și datele lor să fie suprimate de pe server.

În JavaScript utilizând jQuery, facem date simple și afișate sub forma unei mese din browser:

$ .getjson ("get-info.php"). Succes (date) (// solicitare Ajax, datele de pe server vor fi înregistrate în datele variabile HTMLSTR \u003d

Extensie de fișier .json.
Categoria de fișiere
Exemplu de fișier (0,57 kib)
Programe conexe Microsoft Notepad.
Microsoft WordPad.
Notepad ++.
Mozilla Firefox.
"pentru (var i \u003d 0; i "+ Date [i] .fio +""; // prima coloană - PHO HTMLSTR + \u003d" "; // cea de-a doua coloană - data nașterii HTMLSTR + \u003d"";) Htmlstr \u003d"
"+ Date [i] .birthday +"
"$ (" div.info "). HTML (HTMLSTR); // în Div cu clasa de informații, derivăm tabelul rezultat cu datele));

Pe server, scriptul de intrare-info.php la care se face cererea AJAX poate fi, de exemplu, ca:

$ user_info \u003d matrice (); // creați o matrice cu date $ user_info \u003d matrice ("fio" \u003d\u003e "Ivanov serghie", "ziua de naștere" \u003d\u003e 09.03.1975 "); $ user_info \u003d matrice ("fio" \u003d\u003e "petrov aleksey", "ziua de naștere" \u003d\u003e 09/18/1983 "); echo json_encode ($ user_info); Ieșire;

În acest exemplu, șirul JSON, care a fost transferat de la server la browser a fost astfel:

[("Fio": "Ivanov Serghei", "Ziua de naștere": "03/09/1975"), ("FIO": "Petrov Aleksey", "Ziua de naștere": "09/18/1983")]

În mod specific, nu am arătat un șir sub formă de "copac", pentru că Acesta este transmis în acest formular. Și cum puteți aprecia Înregistrarea datelor în format JSON sa dovedit a fi foarte compactăAceasta înseamnă că transferul acestor date de la server la browser va fi practic instantaneu.

2. Înregistrați structuri de date complexe în baza de date.

Uneori există situații în care nu este recomandabil să porniți tabelul din baza de date pentru a salva diverse date. Să presupunem că, presupuneți că utilizatorul înregistrat pe site are capacitatea de a face culoarea textului și setarea culorii textului.

În loc să porniți o altă masă din motive de 2 setări, este posibilă efectuarea unei coloane text în tabel cu o listă de utilizatori pentru a efectua datele de setări ale utilizatorului. Apoi, cererea de actualizare a setărilor poate fi, de exemplu,:

Actualizați setările utilizatorilor \u003d "(" Culoare fundal ":" # FFFFFF "," Text-Color ":" # 000000 ")" unde user_id \u003d 10

În viitor, primind de la masă utilizatori. Informații, scriptul PHP pot să le transforme cu ușurință într-o matrice cu setări. De exemplu, dacă variabila $ user_info conține datele obținute de utilizator de la tabelul utilizatorilor, obțineți o matrice cu setările este foarte simplă:

$ setări \u003d json_decode ($ user_info ["setări"], TRUE); Echo "fundal culoare \u003d". $ Setări ["fundal-culoare"]; ECHO "Culoarea textului \u003d". $ Setări ["Culoare text"];

În formatul JSON, puteți, de exemplu, scrieți în baza de date care opțiunile de bunuri au ales cumpărătorul.

("15": "" 47 "]," 18 ":" 52 ") // Opțiunea 15 Valorile de 45 și 47 sunt selectate și opțiunea 18 este selectată 52

În principiu, puteți scrie chiar și tot conținutul coșului în format JSON, de exemplu, după cum urmează:

("user_id": 10, "sesiune_id": "2C2L3H4II271AOOOOOOJENTEJTDCMH3", "produse": [("produs_id": 15, "Opțiuni": (15 ":" 18 ": 52)," Cantitate ": 1, Prețul ": 1500), (" produs_id ": 16," Opțiuni ": (" 15 ":" 18 ": 51)," Cantitate ": 2," Prețul ": 1000)]

În forma obișnuită nu copac, această linie JSON va fi așa:

("user_id": 10, "session_id": "2C2L3H4I271AOJENTEJTDCMH3", "produse": [("produs_id": 15, "Opțiuni": ("15": "18": 52), "Cantitate": 1, "Preț": 1500), ("produs_id": 16, "Opțiuni": ("15": "18": 51), "Cantitate": 2, "Prețul": 1000)]

Astfel, după cum se vede din exemple, puteți stoca și transmite practic orice informație în format JSON.

JSON. Notația obiectului JavaScript este un simplu format de schimb de date, convenabil pentru citirea și scrierea atât a unei persoane, cât și a unui computer. Se bazează pe un subset al limbajului de programare JavaScript definit în ediția ECMA-262 a 3-a - decembrie 1999. JSON este un format de text, complet independent de limba de implementare, dar utilizează acorduri familiarizate cu limbi similare C, cum ar fi C, C ++, C #, Java, JavaScript, Perl, Python și multe altele. Aceste proprietăți fac JSON limba ideală de înregistrare a datelor.

JSON se bazează pe două structuri de date:

  • Colectarea cheii / valorii perechilor. În diferite limbi, acest concept este implementat ca un obiect, înregistrare, structură, dicționar, hash, lista sau matricea asociativă.
  • Ordonată lista de valori. În cele mai multe limbi este implementat ca array., vector, listă sau secvență.

Acestea sunt structuri de date universale. Aproape toate limbile moderne de programare le susțin sub orice formă. Este logic să presupunem că formatul de date, independent de limba de programare, ar trebui să se bazeze pe aceste structuri.

În notație JSON arată astfel:

Un obiect - set dezordonat de cheie / valoare a perechii. Obiectul începe cu (bretele de deschidere și capetele) cu un suport curbator de închidere. Fiecare nume este însoțit de: Colon, perechi de cheie / valoare sunt separate, virgulă.

Array. - colectarea de valori ordonate. Matricea începe cu [suportul pătratului de deschidere și se termină] cu un suport pătrat de închidere. Valorile sunt separate, virgulă.


Valoare poate linia în ghilimele duble număr, Adevărat, fals, nul, obiect sau o matrice. Aceste structuri pot fi investite.


Linia - Colecția de zgârieturi sau mai multe caractere Unicode închise în ghilimele duble utilizând \\ Reverse Oblique Line ca simbol de screening. Simbolul este reprezentat ca un șir de pulverizare unic. Sintaxă similară este utilizată în C și Java.


Număr Se pare același lucru ca în C sau Java, cu excepția faptului că numărul zecimal este utilizat.


Spațiile pot fi utilizate între orice lexeme.

Cu excepția unor detalii de codare, cele de mai sus descrie pe deplin limba.


Familiar cu programele de programare recunosc imediat fișierele cu extensia JSON. Acest format este o abrevierea termenilor Obiectivul JavaScript și este, în esență, o opțiune de schimb de date bazată pe text utilizată în limba de programare JavaScript. În consecință, faceți clic pe deschiderea acestor fișiere va ajuta fie software specializat sau editori de text.

Caracteristica principală a scripturilor în format JSON este interschimbabilitatea formatului IT la XML. Ambele tipuri sunt documente text care pot fi deschise cu procesoare de text. Cu toate acestea, începem cu un software specializat.

Metoda 1: Altova xmlspy

Un mediu de dezvoltare suficient de bine cunoscut pe care programatorii de web sunt utilizați. Acest mediu generează, de asemenea, fișiere JSON, prin urmare este capabil să deschidă documente terțe cu o astfel de extensie.


Dezavantajele acestor două. Primul este o bază de proliferare plată. Versiunea de încercare este activă de 30 de zile, cu toate acestea, este necesar să specificați numele și căsuța poștală. Al doilea este volumul total: o persoană care trebuie doar să deschidă dosarul, poate părea prea decolorat.

Metoda 2: Notepad ++

Notepad ++ Editor de text multifuncțional - Prima listă potrivită pentru deschiderea scripturilor în format JSON.


Pluses Notepad ++ este frumos - aici și afișând sintaxa multor limbi de programare și pluginuri de susținere și dimensiuni mici ... Cu toate acestea, datorită unor caracteristici, programul funcționează cu ușurință, mai ales dacă deschideți un document voluminos în el.

Metoda 3: Akelpad

Incredibil de simplu și în același timp, un editor de text bogat de la dezvoltatorul rus. Numărul suportat de acestea include JSON.


Ca și Notepad ++, această opțiune Notepad este, de asemenea, gratuită și suportă pluginurile. Funcționează înghețarea, dar fișierele mari și sofisticate nu pot deschide prima dată, deci țineți cont de o astfel de caracteristică.

Metoda 4: Editarea Komodo

Software gratuit pentru scrierea codului programului de la Komodo. Diferită cu interfața modernă și suport larg pentru funcții pentru programatori.


În program, din păcate, nu există nici o limbă rusă. Cu toate acestea, utilizatorul obișnuit va speria mai degrabă elemente de interfață funcționale și incomprehensibile - la urma urmei, acest editor este concentrat în primul rând pe programatori.

Metoda 5: Text sublim

Un alt reprezentant al editorilor de text orientate spre cod. Interfața este mai ușoară decât colegii, totuși capabilitățile sunt aceleași. O versiune portabilă a aplicației este disponibilă.


Din păcate, textul sublim nu este disponibil în limba rusă. Dezavantajul poate fi, de asemenea, numit un model de distribuție fără condițional: versiunea gratuită nu este limitată de nimic, dar din când în când, apare un memento despre necesitatea achiziționării unei licențe.

Metoda 6: nfopad

Cu toate acestea, notebook-ul simplu, pentru a vizualiza documentele cu extensia JSON, se va potrivi.