format JSON

format JSON

format JSON

JSON Este un format de schimb de date bazat pe text, ceea ce înseamnă că este ușor de citit atât pentru o persoană, cât și pentru un program. Numele său corespunde acronimului englezesc al Notare obiect JavaScript și este standardizată ca ECMA-404. Deși este un format foarte apropiat ca sintaxă de JavaScript, deoarece este foarte ușor de procesat pentru a codifica datele obiectului sau pentru a le obține, este folosit și în multe alte limbaje de programare (C, C ++, Java, Piton...) ca alternativă, de exemplu, la XML, care are un obiectiv similar dar, pentru că include mai multe meta-informații, necesită mai mult text și, prin urmare, ocupă mai mult spațiu, consumă mai multă lățime de bandă și necesită mai multe resurse pentru codificare și decodare. informatiile pe care le contine. JSON.

Cuprins

    Datele unui obiect codificat în JSON Sunt cuprinse între acolade, diferitele proprietăți incluse în ele sunt separate prin virgule, iar numele proprietăților preced valoarea, de care sunt separate prin două puncte.

    Schiță a sintaxei unui obiect în format JSON

    Numele proprietăților trebuie să fie cuprinse între ghilimele folosind ghilimele duble (deși unele analizoare vor accepta ghilimele simple) și, deși sunt permise unele caractere speciale pentru nume (cum ar fi semnele de accent), nu este recomandat să evitați criteriile unor motoare de analiză și să evitați conflictele atunci când utilizați proprietatea, în special cu sintaxa dot(object.property).

    În exemplul de mai sus puteți vedea un obiect care are șase proprietăți cu valori simple, numerice, booleene sau text; dar în format JSON, proprietățile pot dobândi și ca valoare un obiect (inclusiv „obiectul special” null) sau o matrice pe lângă un șir de text (un text între ghilimele), un număr (în diferite formate) sau o valoare booleană (adevărat sau fals). ).

    Ca si in cazul limbajului JavaScript (JSON este un subset al JavaScript) pentru a exprima o matrice, valorile acesteia sunt cuprinse între paranteze drepte și separate prin virgule. Cel mai simplu caz este ilustrat în exemplul de mai jos; Este o matrice unidimensională, un vector, compus din valori numerice.

    En JavaScript Nu este necesar ca toate elementele unei matrice să fie de același tip; de exemplu, șirurile de text și valorile numerice pot fi amestecate. Un vector, o matrice unidimensională, poate fi, de asemenea, unul dintre elementele unei alte matrice, permițând să fie construite matrice multidimensionale de lungimi variabile. Următorul exemplu arată un obiect cu trei proprietăți: primul o matrice bidimensională de lungimi fixe, al doilea lungimi variabile și al treilea format dintr-o matrice cu valori de diferite tipuri.

    Următorul exemplu utilizează alte obiecte ca valori pentru proprietățile obiectului părinte. Nu există o limită a nivelului de imbricare, astfel încât, la rândul lor, obiectele care sunt valori de proprietate ale părintelui pot avea și alte obiecte ca valori de proprietate și așa mai departe.

    Așa cum se întâmplă cu JavaScript, codurile de escape sunt folosite pentru a include anumite caractere într-un șir de text. Cel mai generic mod este de a folosi coduri unicode exprimate cu bara de escape, litera u și patru cifre hexazecimale cu formatul "\u263A" pentru a face referire la ☺ de exemplu.

    Caracterele standard, prezente în majoritatea limbilor (asemănătoare cu C) sunt următoarele

    • mișcare retrogradă \b Cod ASCII 8 (0x08)
    • Tabulator \t Cod ASCII 9 (0x09) Este de obicei reprezentat ca HT (tabulator orizontal)
    • Linie nouă \n Cod ASCII 10 (0x0A) Este de obicei reprezentat ca LF (line feed)
    • Pagina nouă \f Cod ASCII 12 (0x0C) De obicei, reprezentat ca FF (form feed)
    • întoarcere \r Cod ASCII 13 (0x0D) Este de obicei reprezentat ca CR (întoarcere cărucior)
    • Comillas \" Cod ASCII 34 (0x22)
    • bară despicată \/ Cod ASCII 57 (0x2F)
    • Barra inversa \\ Cod ASCII 134 (0x5C)
    • cod unicode \uXXXX

    Derivat de la C (și legat de Unix și altele asemenea, cum ar fi GNU / Linux) capătul de linie este de obicei reprezentat cu \n și este cel care trebuie ales în JSON dar este interesant de reținut că unele sisteme de operare preferă alte alternative. Windows reprezintă de obicei cu \r\n sfârșit de linie și Mac OS (înainte de OS \r

    În ceea ce privește formatul numeric, referința este și JavaScript. Separatorul zecimal este punctul, liniuța (ASCII 45 0x2D) este folosit ca semn negativ și notație în formă exponențială (Notatie stiintifica) utilizări E ca indicator (care poate fi majuscule sau mici)

    După cum am spus la început, pentru a utiliza datele, care vor fi fost obținute ca text, diferitele limbaje de programare au funcții de analiză și atribuire. Următorul exemplu arată cum ar fi ele utilizate în JavaScript. Pentru a-l putea folosi de pe o consolă, este inclusă atribuirea datelor JSON Pentru a evita eventualele erori în funcție de standardul ECMA utilizat de interpret JavaScript se face atribuirea obiectului JSON într-o singură linie. Ediția 6 din 2016 (ECMA-262) acceptă șiruri cu mai multe linii, ediția 5 (până în 2011) trebuie să adauge cod de escape \ iar in cele anterioare trebuie sa o rezolvi manual sau sa folosesti o singura linie.

    Un avertisment pentru a nu confunda utilizatorii noi JavaScript. În interiorul codului JavaScript Nu este necesar să folosiți un șir de text pentru a crea un obiect, în exemplul anterior acesta este folosit pentru a simula datele care sosesc, de exemplu, de la un server. Pentru a atribui un obiect unei variabile, ceva de genul:

    Acest obiect ar putea fi convertit în text, de exemplu, cu funcția stringify după cum urmează:

    Formatul JSON Este destul de flexibil, dar, în principal pentru că este bazat pe text pentru a fi citit de om, are unele dezavantaje. Primul este că necesită mai multă memorie și consumă mai multă lățime de bandă decât este esențial. În exemplele anterioare s-a folosit un format care își propune să fie mai lizibil decât economic, deci nu reprezintă o mostră de economii, chiar și așa există multe elemente ale formatului (acolade, paranteze drepte, ghilimele...) care ar continua sa consume resurse fata de informatiile reprezentate.in brut.

    A doua problemă apare atunci când aveți de-a face cu date pur binare (de exemplu, imagini). Când aveți de-a face cu porțiuni mici, poate fi rezolvată cu ceea ce s-a explicat pentru a rezolva formatarea caracterelor speciale, dar dacă este vorba despre codificarea informațiilor de anumite dimensiuni, va fi necesar să-l încorporați în Format JSON folosind alt format de text. Cea mai folosită codificare pentru a rezolva acest aspect este Baza64 deoarece multe limbi au biblioteci pentru a converti informații într-o direcție sau alta. Dacă datele manipulate sunt predominant de acest tip și/sau nu este necesar ca o persoană să interpreteze informațiile fără un program, merită să luați în considerare dacă formatul JSON este cel mai potrivit.

    Posteaza un comentariu

    S-ar putea să fi ratat