Formát JSON: príklad a popis. Formát JSON: čo to je, ako vytvoriť a otvoriť správu súboru Json

Určite ste už niekedy počuli o JSON. Čo je to? Čo dokáže a ako ho používať?

V tomto návode preberieme základy JSON a pokryjeme nasledujúce body:

  • Čo je JSON?
  • Na čo sa používa JSON?
  • Ako vytvoriť reťazec JSON?
  • Jednoduchý príklad reťazca JSON.
  • Porovnajme JSON a XML.
  • Ako pracovať s JSON v JavaScripte a PHP?
Čo je JSON?

JSON je jednoduchý textový spôsob ukladania a prenosu štruktúrovaných údajov. Pomocou jednoduchej syntaxe môžete jednoducho uložiť čokoľvek od jedného čísla po reťazce, polia a objekty v obyčajnom texte. Môžete tiež prepojiť polia a objekty a vytvoriť tak zložité dátové štruktúry.

Po vytvorení reťazca JSON je ľahké ho odoslať do inej aplikácie alebo na iné miesto v sieti, pretože ide o obyčajný text.

JSON má nasledujúce výhody:

  • Je kompaktný.
  • Jeho vety sú ľahko čitateľné a skladajú ich ľudia aj počítače.
  • Dá sa ľahko previesť na dátovú štruktúru pre väčšinu programovacích jazykov (čísla, reťazce, booleany, polia atď.)
  • Mnoho programovacích jazykov má funkcie a knižnice na čítanie a vytváranie štruktúr JSON.

Názov JSON je skratka pre JavaScript Object Notation. Ako už názov napovedá, je založený na spôsobe definovania objektov (podobne ako vytváranie asociatívnych polí v iných jazykoch) a polí.

Na čo sa používa JSON?

Najbežnejším použitím JSON je odosielanie údajov zo servera do prehliadača. Údaje JSON sa zvyčajne doručujú pomocou technológie AJAX, ktorá umožňuje prehliadaču a serveru komunikovať bez nutnosti opätovného načítania stránky.

  • Používateľ klikne na miniatúru produktu v internetovom obchode.
  • JavaScript spustený v prehliadači generuje požiadavku AJAX na PHP skript bežiaci na serveri a odovzdáva ID vybraného produktu.
  • PHP skript získa názov produktu, popis, cenu a ďalšie informácie z databázy. Potom z údajov poskladá reťazec JSON a odošle ho prehliadaču.
  • JavaScript spustený v prehliadači prijme reťazec JSON, dekóduje ho a používateľovi zobrazí informácie o produkte na stránke.
  • JSON môžete použiť aj na odosielanie údajov z prehliadača na server odoslaním reťazca JSON ako parametra do požiadaviek GET alebo POST. Táto metóda je však menej bežná, pretože prenos údajov prostredníctvom požiadaviek AJAX možno zjednodušiť. Napríklad ID produktu môže byť zahrnuté do adresy URL ako súčasť požiadavky GET.

    Knižnica jQuery má niekoľko metód, ako napríklad getJSON() a parseJSON(), ktoré uľahčujú získavanie údajov pomocou JSON prostredníctvom požiadaviek AJAX.

    Ako vytvoriť reťazec JSON?

    Existuje niekoľko základných pravidiel na vytvorenie reťazca JSON:

    • Reťazec JSON obsahuje buď pole hodnôt, alebo objekt (asociatívne pole párov názov/hodnota).
    • Pole je uzavretý v hranatých zátvorkách ([ a ]) a obsahuje zoznam hodnôt oddelených čiarkami.
    • Objekt je uzavretý v zložených zátvorkách (( a )) a obsahuje čiarkami oddelený zoznam párov názov/hodnota.
    • pár meno/hodnota pozostáva z názvu poľa v dvojitých úvodzovkách, za ktorým nasleduje dvojbodka (:) a hodnota poľa.
    • Význam v poli alebo objekte môže byť:
      • číslo (celé číslo alebo s pohyblivou rádovou čiarkou)
      • Reťazec (v úvodzovkách)
      • Boolovská hodnota (pravda alebo nepravda)
      • Ďalšie pole (uzavreté v hranatých zátvorkách)
      • Ďalší objekt (v zložených zátvorkách)
      • nulovú hodnotu

    Ak chcete do reťazca vložiť dvojité úvodzovky, musíte použiť spätnú lomku: \" . Rovnako ako v mnohých programovacích jazykoch môžete do reťazca vložiť riadiace znaky a hexadecimálne kódy tak, že pred nimi dáte opačnú lomku. Podrobnosti nájdete na webovej lokalite JSON.

    Jednoduchý príklad reťazca JSON

    Nižšie je uvedený príklad objednávania vo formáte JSON:

    ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [chránený e-mailom]", "contents": [ ( "productID": 34, "productName": "super produkt", "množstvo": 1 ), ( "productID": 56, "productName": "zázračný produkt", "množstvo": 3) ], "orderCompleted": true )

    Pozrime sa na riadok podrobne:

    • Objekt vytvoríme pomocou zložených zátvoriek (( ​​a )).
    • Objekt má niekoľko párov názov/hodnota: "orderID": 12345 vlastnosť s názvom "orderId" a celočíselnou hodnotou 12345 "shopperName": "Vanya Ivanov" vlastnosť s názvom "shopperName" a hodnotou reťazca "Vanya Ivanov" " "shopperEmail": " [chránený e-mailom]" Vlastnosť s názvom "shopperEmail" s hodnotou reťazca " [chránený e-mailom]" "contents": [ ... ] Vlastnosť s názvom "contents", ktorej hodnota je pole "orderCompleted": true Vlastnosť s názvom "orderCompleted" a boolovská hodnota true
    • V poli "contents" sú 2 objekty reprezentujúce jednotlivé položky v objednávke. Každý objekt obsahuje 3 vlastnosti: productID , productName a množstvo .

    Mimochodom, keďže JSON je založený na deklarovaní objektov JavaScriptu, môžete z vyššie uvedeného reťazca JSON rýchlo a jednoducho urobiť objekt JavaScriptu:

    var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [chránený e-mailom]", "contents": [ ( "productID": 34, "productName": "super produkt", "množstvo": 1 ), ( "productID": 56, "productName": "zázračný produkt", "množstvo": 3 ) ], "objednávka dokončená": true);

    Porovnanie JSON a XML

    V mnohých ohľadoch si môžete predstaviť JSON ako alternatívu k XML, aspoň v priestore webových aplikácií. Koncept AJAX bol pôvodne založený na použití XML na prenos údajov medzi serverom a prehliadačom. V posledných rokoch sa však JSON stáva čoraz populárnejším na prenos údajov AJAX.

    Zatiaľ čo XML je osvedčená technológia, ktorá sa používa vo veľkom množstve aplikácií, JSON má výhodu kompaktnejšieho a ľahšie rozpoznateľného dátového formátu.

    Takto by vyzeral vyššie uvedený príklad objektu v XML:

    orderID 12345 shopperMeno Vanya Ivanov shopperEmail [chránený e-mailom] obsah produktID 34 produktNazov Super množstvo produktu 1 produktID 56 produktNazov Miracle množstvo produktu 3 objednávkaSplnená pravda

    Verzia XML je podstatne väčšia. V skutočnosti má 1128 znakov, zatiaľ čo verzia JSON má len 323 znakov. Verzia XML je tiež dosť náročná na pochopenie.

    Samozrejme, toto je radikálny príklad. A je možné vytvoriť kompaktnejší XML záznam. Ale aj to bude výrazne dlhšie ako ekvivalent JSON.

    Práca s reťazcom JSON v JavaScripte

    JSON má jednoduchý formát, ale manuálne vytváranie reťazca JSON je dosť únavné. Okrem toho často potrebujete vziať reťazec JSON, previesť jeho obsah na premennú, ktorú možno použiť v kóde.

    Väčšina programovacích jazykov má nástroje na jednoduchú konverziu premenných na reťazce JSON a naopak.

    Vytvorenie reťazca JSON z premennej

    JavaScript má vstavanú metódu JSON.stringify(), ktorá berie premennú a vracia reťazec JSON predstavujúci jej obsah. Napríklad vytvorte objekt JavaScript, ktorý obsahuje informácie o objednávke z nášho príkladu, a potom z neho vytvorte reťazec JSON:

    var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [chránený e-mailom]", "contents": [ ( "productID": 34, "productName": "super produkt", "množstvo": 1 ), ( "productID": 56, "productName": "zázračný produkt", "množstvo": 3 ) ], "orderCompleted": true ); alert (JSON.stringify(cart));

    Tento kód vytvorí:

    Všimnite si, že metóda JSON.stringify() vracia reťazec JSON bez medzier. Je ťažšie čitateľný, ale na prenos po sieti je kompaktnejší.

    Existuje niekoľko spôsobov, ako analyzovať reťazec JSON v jazyku JavaScript, ale najbezpečnejšie a najspoľahlivejšie je použiť vstavanú metódu JSON.parse(). Prijme reťazec JSON a vráti objekt alebo pole JavaScriptu, ktoré obsahuje údaje. Napríklad:

    var jsonString = " \ ( \ "ID objednávky": 12345, \ "názov nakupujúceho": "Vanya Ivanov", \ "e-mail nakupujúceho": " [chránený e-mailom]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "Super produkt", \ "množstvo": 1 \), \ ( \ "productID": 56, \ "productName": "Zázračný tovar", \"množstvo": 3\ ) \ ], \"objednávka dokončená": pravda \ ) \"; var cart = JSON.parse(jsonString); alert(cart.shopperEmail); alert(cart.contents.productName);

    Vytvorili sme premennú jsonString, ktorá obsahuje reťazec JSON našej vzorovej objednávky. Tento reťazec potom odovzdáme metóde JSON.parse(), ktorá vytvorí objekt obsahujúci údaje JSON a uloží ho do premennej košíka. Zostáva len skontrolovať zobrazením vlastností objektu shopperEmail a productName poľa obsahu.

    V dôsledku toho dostaneme nasledujúci výstup:

    V skutočnej aplikácii by váš kód JavaScript prijal objednávku ako reťazec JSON v odpovedi AJAX zo serverového skriptu, odovzdal reťazec metóde JSON.parse() a potom by údaje použil na zobrazenie na stránke používateľa.

    JSON.stringify() a JSON.parse() majú ďalšie možnosti, ako napríklad použitie funkcií spätného volania na vlastnú konverziu určitých údajov. Takéto možnosti sú veľmi užitočné pri konverzii rôznych údajov na správne objekty JavaScript.

    Práca s reťazcom JSON v PHP

    PHP, podobne ako JavaScript, má vstavané funkcie na prácu s reťazcami JSON.

    Vytvorenie reťazca JSON z premennej PHP

    Funkcia json_encode() berie premennú PHP a vracia reťazec JSON predstavujúci obsah premennej. Tu je náš príklad objednávky napísaný v PHP:

    Tento kód vracia presne rovnaký reťazec JSON ako v príklade JavaScriptu:

    ("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [chránený e-mailom]","contents":[("productID":34,"productName":"Super produkt","quantity":1),("productID":56,"productName":"Zázračný produkt","množstvo": 3)],"orderCompleted":true)

    V skutočnej aplikácii váš PHP skript odošle tento reťazec JSON ako súčasť odpovede AJAX do prehliadača, kde ho kód JavaScript pomocou metódy JSON.parse() analyzuje späť do premennej, ktorá sa zobrazí na stránke používateľa. .

    Funkcii json_encode() môžete odovzdať rôzne príznaky ako druhý argument. S ich pomocou môžete zmeniť princípy kódovania obsahu premenných do reťazca JSON.

    Vytvorte premennú z reťazca JSON

    Ak chcete konvertovať reťazec JSON na premennú PHP, použite metódu json_decode(). Nahraďte náš príklad pre JavaScript metódou JSON.parse() kódom PHP:

    Rovnako ako v prípade JavaScriptu tento kód vytvorí:

    [chránený e-mailom] Zázračný produkt

    Funkcia json_decode() štandardne vracia objekty JSON ako objekty PHP. Existujú všeobecné objekty PHP triedy stdClass. Preto používame -> na prístup k vlastnostiam objektu v príklade vyššie.

    Ak potrebujete objekt JSON ako pridružené pole PHP, musíte funkcii json_decode() odovzdať hodnotu true ako druhý argument. Napríklad:

    $cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
    "; echo $cart["contents"]["productName"] . "
    ";

    Tento kód vytvorí rovnaký výstup:

    [chránený e-mailom] Zázračný produkt

    Funkcii json_decode() môžete tiež odovzdať ďalšie argumenty na určenie hĺbky rekurzie a spôsobu spracovania veľkých celých čísel.

    Záver

    Aj keď je JSON ľahko pochopiteľný a použiteľný, je to veľmi užitočný a flexibilný nástroj na prenos dát medzi aplikáciami a počítačmi, najmä pri použití AJAX. Ak plánujete vyvinúť aplikáciu AJAX, potom niet pochýb o tom, že JSON sa stane nevyhnutným nástrojom vo vašej dielni.

    JSON (JavaScript Object Notation) je jednoduchý formát na výmenu údajov, ktorý ľudia aj počítače ľahko čítajú a zapisujú. Je založený na podmnožine programovacieho jazyka JavaScript, ktorý je definovaný v štandarde ECMA-262 3. vydanie – december 1999. JSON je textový formát, ktorý je úplne nezávislý od implementačného jazyka, ale používa konvencie známe programátorom jazykov podobných C, ako sú C, C++, C#, Java, JavaScript, Perl, Python a mnoho ďalších. Vďaka týmto vlastnostiam je JSON ideálnym jazykom na výmenu údajov.

    JSON je založený na dvoch dátových štruktúrach:

    • Zbierka párov kľúč/hodnota. V rôznych jazykoch je tento koncept implementovaný ako objekt, záznam, štruktúra, slovník, hash, pomenovaný zoznam alebo asociatívne pole.
    • Usporiadaný zoznam hodnôt. Vo väčšine jazykov je to implementované ako pole, vektor, zoznam alebo sekvencia.

    Ide o univerzálne dátové štruktúry. Takmer všetky moderné programovacie jazyky ich v určitej forme podporujú. Je logické predpokladať, že dátový formát, nezávislý od programovacieho jazyka, by mal byť založený na týchto štruktúrach.

    V zápise JSON to vyzerá takto:

    Objekt- neusporiadaná množina párov kľúč/hodnota. Objekt začína ( otváracia zložená zátvorka a končí ) uzatváracia zložená zátvorka. Za každým názvom nasleduje: dvojbodka, páry kľúč/hodnota oddelené čiarkou.

    Pole- usporiadaná zbierka hodnôt. Pole začína [ otvorenou hranatou zátvorkou a končí ] uzatváracou hranatou zátvorkou. Hodnoty sú oddelené čiarkou.


    Význam Možno riadok v úvodzovkách, číslo, pravda , nepravda , null , objekt alebo pole. Tieto štruktúry môžu byť vnorené.


    Linka je kolekcia nula alebo viacerých znakov Unicode, uzavretých v úvodzovkách, s použitím \ spätnej lomky ako znaku escape. Znak je reprezentovaný ako jednoznakový reťazec. Podobná syntax sa používa v jazykoch C a Java.


    číslo Je reprezentovaný rovnakým spôsobom ako v C alebo Jave, okrem toho, že sa používa iba desiatkový číselný systém.


    Medzery možno použiť medzi ľubovoľnými tokenmi.

    Vyššie uvedené úplne popisuje jazyk, s výnimkou niektorých podrobností o kódovaní.


    JavaScript Object Notation (JSON) je štandardný textový formát na reprezentáciu štruktúrovaných údajov na základe syntaxe objektu JavaScript. Bežne sa používa na prenos údajov vo webových aplikáciách (napríklad odosielanie niektorých údajov zo servera klientovi, aby sa mohli zobraziť na webovej stránke alebo naopak). S tým sa stretnete pomerne často, preto vám v tomto článku poskytneme všetko, čo potrebujete na prácu s JSON pomocou JavaScriptu, vrátane analýzy JSON, aby ste mali prístup k údajom v ňom a vytvorili JSON.

    Nie, naozaj, čo je JSON?

    Načítame to na našu stránku a na vykreslenie použijeme nejakú úhľadnú DOM manipuláciu, ako je toto:

    Prijíma sa JSON

    Na prijatie JSON použijeme API s názvom XMLHttpRequest (často nazývané XHR). Toto je veľmi užitočný objekt JavaScript, ktorý nám umožňuje vytvárať sieťové požiadavky na získanie zdrojov zo servera prostredníctvom JavaScriptu (napr. obrázky, text, JSON, dokonca aj úryvky HTML), čo znamená, že môžeme aktualizovať malé časti obsahu bez toho, aby sme museli znova načítať celú stránku. . Výsledkom sú citlivejšie webové stránky a zvuky vzrušujúce, ale nanešťastie to presahuje rámec tohto článku, aby sme to naučili oveľa podrobnejšie.

  • Začnime tým, že do premennej uložíme adresu URL JSON, ktorú chceme prijať. Pridajte nasledujúci kód JavaScript: var requestURL = "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
  • Na vytvorenie požiadavky musíme vytvoriť novú inštanciu objektu požiadavky z konštruktora XMLHttpRequest pomocou kľúčového slova new. Ako posledný riadok pridajte nasledovné: var request = new XMLHttpRequest();
  • Teraz musíme otvoriť novú požiadavku pomocou súboru . Pridajte nasledujúci riadok: request.open("GET", requestURL);

    Toto vyžaduje minimálne dva parametre – k dispozícii sú ďalšie parametre. Pre tento jednoduchý príklad potrebujeme iba dva:

    • Metóda HTTP, ktorá sa má použiť pri vytváraní sieťovej požiadavky. Tento prípad je v poriadku, pretože práve získavame nejaké jednoduché údaje.
    • Adresa URL žiadosti je adresa URL súboru JSON, ktorý sme predtým uložili.
  • Potom pridajte nasledujúce dva riadky: Tu nastavujeme JSON, aby XHR vedel, že server vráti JSON a že by sa mal za scénou previesť na objekt JavaScript. Potom požiadavku odošleme pomocou metódy: request.responseType = "json"; request.send();
  • Posledná časť tejto časti zahŕňa čakanie na návratovú odpoveď zo servera a následné spracovanie. Pod predchádzajúci kód pridajte nasledujúci kód: request.onload = function() ( var superHeroes = request.response; populateHeader(superHeroes); showHeroes(superHeroes); )
  • Tu uložíme odpoveď na našu požiadavku (dostupnú vo vlastnosti) do premennej superHeroes; táto premenná bude teraz obsahovať objekt JavaScript založený na JSON! Tento objekt potom odovzdáme dvom volaniam funkcie - prvé ho naplní správnymi údajmi a druhé vytvorí informačnú kartu pre každého hrdinu v tíme a vloží ju do .

    Kód sme zabalili do obsluhy udalosti, ktorá sa spustí, keď sa spustí udalosť load na objekte požiadavky (pozri) – je to preto, že udalosť load sa spustí, keď sa odpoveď vráti úspešne; Ak to urobíte týmto spôsobom, zabezpečíte, že request.response bude určite k dispozícii, keď sa pokúsime s tým niečo urobiť.

    Plnenie hlavičky

    Teraz sme extrahovali údaje JSON a premenili ich na objekt JavaScript, poďme ich využiť napísaním dvoch funkcií, ktoré sme prepojili vyššie. Najprv pridajte nasledujúcu definíciu funkcie pod predchádzajúci kód:

    Funkcia populateHeader(jsonObj) ( var myH1 = document.createElement("h1"); myH1.textContent = jsonObj["názov skupiny"]; header.appendChild(myH1); var myPara = document.createElement("p"); myPara. textContent = "Rodné mesto: " + jsonObj["domovské Mesto"] + " // Sformované: " + jsonObj["formed"]; header.appendChild(myPara); )

    Parameter sme nazvali jsonObj, aby sme si pripomenuli, že tento objekt JavaScript pochádza z JSON. Tu najprv vytvoríme prvok s , nastavíme ho na rovnakú vlastnosť squadName objektu a potom ho pridáme do hlavičky pomocou . Veľmi podobnú operáciu potom vykonáme s odsekom: vytvoríme ho, nastavíme jeho textový obsah a pridáme do nadpisu. Jediný rozdiel je v tom, že jeho text je špecifikovaný ako zreťazený reťazec obsahujúci vlastnosti homeTown aj formované vlastnosti objektu.

    Vytváranie informačných kariet o hrdinoch

    Potom pridajte nasledujúcu funkciu do spodnej časti kódu, ktorý vytvorí a zobrazí karty superhrdinov:

    Funkcia showHeroes(jsonObj) ( var heroes = jsonObj["členovia"]; pre (var i = 0; i< heroes.length; i++) { var myArticle = document.createElement("article"); var myH2 = document.createElement("h2"); var myPara1 = document.createElement("p"); var myPara2 = document.createElement("p"); var myPara3 = document.createElement("p"); var myList = document.createElement("ul"); myH2.textContent = heroes[i].name; myPara1.textContent = "Secret identity: " + heroes[i].secretIdentity; myPara2.textContent = "Age: " + heroes[i].age; myPara3.textContent = "Superpowers:"; var superPowers = heroes[i].powers; for (var j = 0; j < superPowers.length; j++) { var listItem = document.createElement("li"); listItem.textContent = superPowers[j]; myList.appendChild(listItem); } myArticle.appendChild(myH2); myArticle.appendChild(myPara1); myArticle.appendChild(myPara2); myArticle.appendChild(myPara3); myArticle.appendChild(myList); section.appendChild(myArticle); } }

    Najprv uložme vlastnosť Members objektu JavaScript do novej premennej. Toto pole obsahuje niekoľko objektov, ktoré obsahujú informácie pre každého hrdinu.

    Potom použijeme na zacyklenie každého objektu v poli. Pre každú z nich:

  • Vytvárame niekoľko nových prvkov: , , tri

    A

      .
    • Nastavte tak, aby obsahovalo meno aktuálneho hrdinu.
    • Ak chcete zadať informácie do zoznamu, vyplňte tri odseky svojím tajomstvomIdentita , vek a riadok s nápisom „Superschopnosti:“.
    • Vlastnosť powers ukladáme do ďalšej novej premennej s názvom superPowers – tá obsahuje pole, v ktorom sú uvedené superschopnosti aktuálneho hrdinu.
    • Ďalšiu slučku for používame na precyklenie superschopností aktuálneho hrdinu – pre každú z nich vytvoríme prvok
    • , vložte do nej superschopnosti a potom vložte listItem do prvku
        (myList) pomocou appendChild() .
      • Posledná vec, ktorú urobíme, je pridať,

        A

          vnútri (môj článok) a potom ho pridajte do súboru . Poradie, v ktorom sa veci pridávajú, je dôležité, pretože toto je poradie, v akom sa budú zobrazovať v kóde HTML.

          Poznámka: Ak máte problémy s dodržiavaním bodkovej/zátvorkovej notácie, ktorú používame na prístup k objektu JavaScriptu, môže vám pomôcť otvoriť súbor superheroes.json na inej karte alebo v textovom editore a odkázať naň, keď si prezeráte náš JavaScript. Ďalšie informácie o zápise bodiek a zátvoriek nájdete aj v našom článku.

          Prevod medzi objektmi a textom

          Vyššie uvedený príklad bol jednoduchý z hľadiska prístupu k objektu JavaScript, pretože sme špecifikovali požiadavku XHR na priamu konverziu odpovede JSON na objekt JavaScript pomocou .

          V tomto článku chcem hovoriť o formáte výmeny textových údajov - JSON a konkrétne o práci s týmto formátom v PHP.

          JSON je kompaktný formát textových údajov. Dá sa použiť ako v službách internetového prenosu dát, tak aj na ukladanie informácií v štruktúrovanej forme.

          JSON( Angličtina Zápis objektov JavaScript) je textový formát na výmenu údajov založený na JavaScripte a bežne používaný v tomto jazyku. Rovnako ako mnoho iných textových formátov, aj JSON je pre ľudí ľahko čitateľný.

          Napriek svojmu pôvodu v JavaScripte (presnejšie z podmnožiny jazyka normy ECMA-262 z roku 1999) sa formát považuje za jazykovo nezávislý a možno ho použiť s takmer akýmkoľvek programovacím jazykom. Pre mnohé jazyky existuje pripravený kód na vytváranie a spracovanie údajov vo formáte JSON.

          Praktické výhody používania JSON sa odhaľujú pri použití technológie AJAX. Formát JSON je stručnejší a čitateľnejší ako XML a je natívny v jazyku Javascript. Do JSON kódu je navyše možné vkladať plne funkčné funkcie.

          Áno, práve v technológii AJAX je podľa mňa jej hlavná aplikácia. Pretože technológia AJAX zahŕňa odoslanie požiadavky klienta na server. Potom sa požiadavka spracuje na serveri a výsledok sa odošle klientovi.

          Typ údajov vo formáte JSON

          JSON podporuje všetky hlavné dátové formáty: reťazce, čísla, booleany, ako aj polia a objekty (kombinácie kľúč:hodnota oddelené čiarkami a uzavreté v zložených zátvorkách).

          Tu je príklad reprezentácie údajov vo formáte JSON:

          ("id":"1","name":"ivan","country":"Rusko","office":["yandex","management"])

          Pozrime sa, čo môže tento riadok sprostredkovať: osoba s menom „ivan“, pod identifikátorom „1“, žijúca v krajine „Rusko“, pracuje v spoločnosti „yandex“ v oddelení „manažmentu“.

          Uveďme si ďalší príklad. Stránka má formulár spätnej väzby využívajúci technológiu AJAX. Návštevník vyplní informácie, tie sa následne odošlú na server na overenie, ak sa nezistia žiadne chyby, informácie sa uložia do databázy a odošle sa odpoveď o úspešnom uložení. Ak sa však zistia chyby, vráti sa odpoveď s typmi chýb.

          Príklad chybovej odpovede vo formáte JSON:

          ("error":"1","errorcode":["empty_pers","empty_mail","empty_phone","empty_letter","empty_scode"])

          Čo napríklad znamená:

          • Musíte vyplniť pole „Kontaktná osoba“.
          • Musíte vyplniť pole „E-mail“.
          • Musíte vyplniť pole „Telefón“.
          • Zadajte text správy
          • Musíte vyplniť pole „Číslo na obrázku“.

          Ak nie sú žiadne chyby, vráti sa odpoveď:

          ("chyba":"0")

          Čo naznačuje úspešné odoslanie údajov.

          V PHP sa rozšírenie JSON používa na reprezentáciu údajov vo formáte JSON. Vo verziách PHP starších ako 5.2.0 je podpora JSON zabudovaná do jadra; v starších verziách musíte do skriptu zahrnúť ďalší súbor s funkciami.

          V PHP sú teda za prácu s údajmi vo formáte JSON zodpovedné dve funkcie: json_encode() a json_decode() .

          Konverzia údajov do formátu JSON $json_data = pole ("id"=>1,"name"=>"ivan","country"=>"Rusko","office"=>array("yandex","management") ); echo json_encode($json_data); Reverzná konverzia údajov z formátu JSON $json_string="("id":1,"name":"ivan","country":"Russia","office":["yandex","management"]) "; $obj=json_decode($json_string);

          Teraz bude $obj obsahovať údaje JSON preložené do objektu PHP, ku ktorému máte prístup takto:

          Echo $obj->meno; //Zobrazí názov ivan echo $obj->office; //Zobraziť spoločnosť yandex

          Ako vidíte, $obj->office je pole.

          Foreach($obj->kancelária ako $val) echo $val;

          Práca s JSON vám umožňuje vymieňať si údaje so serverom v "čistá forma". Nie je potrebné posielať objemné kusy HTML kódu.

          Na prácu s formátom JSON má JavaScript globálny objekt JSON. Objekt JSON má dve metódy: stringify() a parse() . Okrem týchto dvoch metód neobsahuje žiadne ďalšie funkcie.

          stringify() metóda

          Metóda stringify() konvertuje hodnotu JavaScript na reťazec JSON.

          Konverzné funkcie:

          • Nedefinovaná hodnota, funkcia alebo symbol, ktoré sa vyskytnú počas prevodu, budú buď vynechané (ak sa nachádzajú v objekte), alebo sa skonvertujú na null (ak sa nachádzajú v poli).
          • Prototypové členy a nespočítateľné vlastnosti sa ignorujú.
          Syntax JSON.stringify(hodnota[, náhrada[, medzera]]) Parametre hodnota Hodnota, ktorá sa má skonvertovať na reťazec JSON. náhrada (voliteľné) Hodnota parametra môže byť funkcia, pole alebo null .
          • Pole definuje množinu vlastností objektu, ktoré budú zahrnuté v reťazci JSON. Hodnoty poľa sú reťazce zodpovedajúce názvom vlastností konvertovaného objektu.
          • Funkcia vám umožňuje nahradiť hodnoty vlastností objektu v reťazci JSON. Funkcia musí obsahovať dva parametre: názov vlastnosti a hodnotu vlastnosti. Názov vlastnosti je reťazec. Funkcia musí vrátiť novú hodnotu vlastnosti.
          • Ak je hodnota parametra null , potom reťazec JSON bude zahŕňať všetky vlastnosti objektu.
          medzera (voliteľné) Zvyšuje čitateľnosť reťazca JSON pridaním odsadenia pre každú úroveň vnorenia. Hodnota parametra môže byť reťazec alebo číslo.
          • Číslo označuje počet medzier použitých ako odsadenie pre každú úroveň vnorenia. Každá ďalšia úroveň vnorenia je doplnená o nové odrážky. Napríklad, ak sa ako hodnota parametra použije číslo 2, potom na prvej úrovni vnorenia bude odsadenie dve medzery, na ďalšej úrovni vnorenia bude odsadenie 4 medzery atď. Maximálny počet medzier, ktorý možno zadať je 10. Ak zadáte väčšie číslo , automaticky sa zníži na 10.
          • Riadok určuje znak použitý ako odsadenie pre každú úroveň vnorenia. Dĺžka riadku je obmedzená na 10 znakov, ak zadáte dlhší riadok, skráti sa na 10 znakov. Použitie čiary vám tiež umožňuje použiť tabulátor ("\t") ako odsadenie. Každá ďalšia úroveň vnorenia je doplnená o nové znaky odsadenia. Napríklad, ak je ako hodnota parametra zadaný symbol - (pomlčka), potom sa na prvej úrovni vnorenia použije jedna pomlčka ako odsadenie, na ďalšej úrovni vnorenia sa použijú 2 pomlčky atď.
          Návratová hodnota

          Reťazec JSON.

          Príklad nech osoba = ( meno: "Gomer", vek: 40, práca: ( miesto: "Jadrová elektráreň", lokalita: "Springfield" ) ) // Príklad s jedným parametrom console.log(JSON.stringify(person)); // "("name":"Homer","age":40,"work":("place":"Nuclear Plant","location":"Springfield"))" // Príklad s dvoma parametrami (pole ) console.log(JSON.stringify(osoba, ["meno", "vek"])); // "("meno":"Gomer","vek":40)" // Príklad s dvoma parametrami (funkcia) console.log(JSON.stringify(osoba, funkcia (kľúč, hodnota) (Switch (kláves ) ( veľkosť písmen "meno": návrat "Bart"; veľkosť písmen "vek": návrat 10; veľkosť písmen "práca": návrat nedefinovaný; predvolené: návratová hodnota; ) ))); // "("meno":"Bart","vek":10)" // Príklad s tromi parametrami console.log(JSON.stringify(person, null, 2)); /* ( * "meno": "Homer", * "vek": 40, * "práca": ( * "miesto": "Jadrová elektráreň", * "miesto": "Springfield" * ) * ) */ Metóda analyzovať ()

          Metóda parse() konvertuje reťazec JSON na zodpovedajúcu hodnotu JavaScript.

          Konverzné funkcie:

          • Ak sa v reťazci JSON počas konverzie vyskytne nedefinovaná hodnota, bude vynechaná (nezahrnutá do výsledku).
          Syntax JSON.parse(text[, oživiť]) Parametre textový reťazec JSON, ktorý bude analyzovaný na zodpovedajúcu hodnotu JavaScript. reviver (voliteľné) Hodnota parametra musí byť funkcia. Funkcia vám umožňuje nahradiť hodnotu vlastnosti reťazca JSON pred jej vrátením. Funkcia musí obsahovať dva parametre: názov vlastnosti a hodnotu vlastnosti. Názov vlastnosti je reťazec. Funkcia musí vrátiť novú hodnotu vlastnosti. Návratová hodnota

          Zodpovedajúca hodnota JavaScript (primitívna hodnota, objekt alebo pole).

          Príklad JSON.parse("()"); // () JSON.parse("true"); // true JSON.parse(""); // JSON.parse("null"); // nulový