Údaje Json prostredníctvom bežného formulára. Vytváranie a analyzovanie údajov JSON v PHP. Jednoduchý príklad údajov JSON

Ak má váš počítač antivírusový program môcť skenovať všetky súbory v počítači, ako aj každý súbor jednotlivo. Akýkoľvek súbor môžete skontrolovať kliknutím pravým tlačidlom myši na súbor a výberom príslušnej možnosti na kontrolu súboru na prítomnosť vírusov.

Napríklad na tomto obrázku súbor my-file.json, potom musíte kliknúť pravým tlačidlom myši na tento súbor a v ponuke súboru vybrať možnosť "skenovať pomocou AVG". Výberom tejto možnosti otvoríte AVG Antivirus a skontrolujete súbor na prítomnosť vírusov.


Niekedy môže dôjsť k chybe nesprávna inštalácia softvéru, čo môže byť spôsobené problémom, ktorý sa vyskytol počas procesu inštalácie. Môže to rušiť váš operačný systém priraďte svoj súbor JSON k správnemu aplikačnému nástroju, ovplyvňujúce tzv "pridruženia prípony súboru".

Niekedy jednoduché preinštalovať Mozilla Firefox môže vyriešiť váš problém správnym prepojením JSON s prehliadačom Mozilla Firefox. V iných prípadoch môžu vzniknúť problémy s priraďovaním súborov zlé programovanie softvéru vývojára a možno budete musieť kontaktovať vývojára so žiadosťou o ďalšiu pomoc.


Poradenstvo: Skúste aktualizovať Mozilla Firefox na najnovšiu verziu, aby ste sa uistili, že máte najnovšie opravy a aktualizácie.


Môže sa to zdať príliš zrejmé, ale často problém môže spôsobovať samotný súbor JSON. Ak ste dostali súbor v prílohe e-mailu alebo ste si ho stiahli z webovej stránky a proces sťahovania bol prerušený (napríklad výpadkom prúdu alebo z iného dôvodu), súbor môže byť poškodený. Ak je to možné, pokúste sa získať novú kópiu súboru JSON a skúste ho znova otvoriť.


Opatrne: Poškodený súbor môže spôsobiť vedľajšie poškodenie predchádzajúceho alebo existujúceho malvéru vo vašom počítači, preto je dôležité, aby bol váš počítač aktualizovaný pomocou aktuálneho antivírusu.


Ak váš súbor json spojené s hardvérom vášho počítača na otvorenie súboru, ktorý možno budete potrebovať aktualizovať ovládače zariadení spojené s týmto zariadením.

Tento problém zvyčajne spojené s typmi mediálnych súborov, ktoré závisia od úspešného otvorenia hardvéru vo vnútri počítača, napr. zvuková karta alebo grafická karta. Ak sa napríklad pokúšate otvoriť zvukový súbor, ale nemôžete ho otvoriť, možno to budete musieť urobiť aktualizovať ovládače zvukovej karty.


Poradenstvo: Ak sa pri pokuse o otvorenie súboru JSON dostanete Chybové hlásenie súvisiace so súborom .SYS, problém môže byť pravdepodobne spojené s poškodenými alebo zastaranými ovládačmi zariadení ktoré je potrebné aktualizovať. Tento proces možno uľahčiť použitím softvéru na aktualizáciu ovládačov, ako je napríklad DriverDoc.


Ak kroky nevyriešili problém a stále máte problémy s otvorením súborov JSON, môže to byť spôsobené nedostatok dostupných systémových prostriedkov. Niektoré verzie súborov JSON môžu na správne otvorenie v počítači vyžadovať značné množstvo zdrojov (napr. pamäť/RAM, výpočtový výkon). Tento problém je celkom bežný, ak súčasne používate pomerne starý počítačový hardvér a oveľa novší operačný systém.

Tento problém sa môže vyskytnúť, keď má počítač problém s dokončením úlohy, pretože operačný systém (a ďalšie služby bežiace na pozadí) spotrebuje príliš veľa zdrojov na otvorenie súboru JSON. Pred otvorením zálohy záložiek Mozilla Firefox skúste zavrieť všetky aplikácie v počítači. Uvoľnením všetkých dostupných zdrojov na vašom počítači poskytnete najlepšie podmienky na pokus o otvorenie súboru JSON.


Ak ty dokončil všetky vyššie uvedené kroky a váš súbor JSON sa stále neotvorí, možno budete musieť spustiť upgrade hardvéru. Vo väčšine prípadov, dokonca aj so staršími verziami hardvéru, môže byť výpočtový výkon stále viac než dostatočný pre väčšinu používateľských aplikácií (pokiaľ nevykonávate veľa práce náročnej na CPU, ako je 3D vykresľovanie, finančné/vedecké modelovanie alebo náročnosť na médiá. ). Touto cestou, je pravdepodobné, že váš počítač nemá dostatok pamäte(bežnejšie označované ako "RAM" alebo RAM) na vykonanie úlohy otvorenia súboru.

Json bol vytvorený pre JavaScript (jeho celý názov je JavaScript Object Notation) a ide o formát na výmenu údajov.

Json našiel svoje využitie v rôznych programovacích jazykoch - napríklad v php, kde to vyzerá takto:

["1":"žltá";"2":"zelená";"3":"sivá"]

Z príkladu môžete vidieť, že neexistujú žiadne medzery a názov a hodnota sú uzavreté v dvojitých úvodzovkách. Ak to dĺžka umožňuje, reťazec možno použiť na odovzdanie údajov v metóde GET.

V tomto prípade môže mať prenášané pole viacúrovňovú štruktúru. PHP má sadu funkcií json navrhnutých na vytváranie a dekódovanie takýchto reťazcov a pracuje výlučne s UTF-8.

json_encode v php

Táto funkcia konvertuje objekt, pole alebo premennú na formát json. Nasledujúci príklad skonvertuje pole do tohto formátu.10, "x2" => 20, "x3" => 30); $jmsv = json_encode($msv); //Obsah $jmsv po vykonaní tejto časti kódu: //("x1":10,"x2":20,"x3":30) ?> ?>

json_decode v php

Táto funkcia dekóduje prijatý reťazec a podľa toho, ktorá možnosť bola zvolená, dostaneme objekt alebo pole. Funkcia má dva parametre – povinný (reťazec, ktorý sa má dekódovať) a voliteľný (ak ho zadáte, vypíše sa pole, ak nie, objekt). Zvážte nasledujúci príklad.Získavanie údajov z triedy:("x1"); ?> Získavanie údajov z poľa:

json_last_error v php

Táto funkcia nemá žiadne parametre. Vráti hodnotu, ktorá sa používa na zvýraznenie príčiny chýb.

  • JSON_ERROR_NONE – žiadne chyby
  • JSON_ERROR_SYNTAX – Chyba syntaxe
  • JSON_ERROR_UTF8 – Neplatné znaky UTF-8, pravdepodobne nesprávne kódovanie
  • JSON_ERROR_DEPTH – Bola dosiahnutá maximálna hĺbka zásobníka
  • JSON_ERROR_STATE_MISMATCH – Neplatný alebo neplatný JSON
  • JSON_ERROR_CTRL_CHAR – Chyba riadiaceho znaku, pravdepodobne nesprávne kódovanie

O JSON ste už určite počuli. Čo je to? Čo dokáže a ako sa dá použiť?

V tejto lekcii sa budeme zaoberať základmi 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 komunikácie štruktúrovaných údajov. Pomocou jednoduchej syntaxe môžete jednoducho uložiť čokoľvek od jedného čísla po reťazce, polia a objekty ako obyčajný text. Môžete tiež prepojiť polia a objekty, aby ste vytvorili 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ú sa človekom aj počítačom.
  • 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 (reprezentácia objektov JavaScriptu). Ako názov predstavuje, je založený na spôsobe, akým sú objekty definované (veľmi podobné vytváraniu asociatívnych polí v iných jazykoch) a poliach.

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 vymieňať si údaje bez toho, aby bolo potrebné znova načítať stránku.

  1. Používateľ klikne na miniatúru produktu v internetovom obchode.
  2. JavaScript spustený v prehliadači odošle požiadavku AJAX na skript PHP spustený na serveri a odovzdá ID vybraného produktu.
  3. PHP skript získa názov produktu, popis, cenu a ďalšie informácie z databázy. Potom z údajov zostaví reťazec JSON a odošle ho prehliadaču.
  4. 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 v požiadavkách GET alebo POST. Táto metóda je však menej bežná, pretože prenos údajov prostredníctvom požiadaviek AJAX môže byť zjednodušený. 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 ú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 zahrnúť 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 im predpíšete opačnú lomku. Podrobnosti nájdete na stránke JSON.

Jednoduchý príklad reťazca JSON

Nasleduje príklad platby 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číselná hodnota 12345 "shopperName": "Vanya Ivanov" vlastnosť s názvom "shopperName" a hodnota reťazca "Vanya Ivanov" "shopperEmail": " [chránený e-mailom]" Vlastníctvo 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" s boolovskou hodnotou true
  • V poli „contents“ sú 2 objekty, ktoré predstavujú riadkové 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:

Porovnanie JSON a XML

V mnohých ohľadoch môžete JSON považovať za alternatívu k XML, aspoň v oblasti 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 pre prenos dát AJAX.

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

Vyššie uvedený príklad objektu XML by vyzeral takto:

orderID 12345 shopperName Ваня Иванов shopperEmail [email protected] contents productID 34 productName Супер товар quantity 1 productID 56 productName Чудо товар quantity 3 objednávka Dokončená pravda

Verzia XML je podstatne väčšia. V skutočnosti má 1128 znakov, zatiaľ čo variant JSON má len 323 znakov. Verzia XML je tiež ťažko zrozumiteľná.

Samozrejme, toto je radikálny príklad. A je možné vytvoriť kompaktnejší záznam XML. 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.

Vytvorte reťazec 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 podrobnosti objednávky z nášho príkladu, a potom z neho vytvorte reťazec JSON:

Tento kód poskytne:

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(). Vyžaduje reťazec JSON a vráti objekt alebo pole JavaScript, ktoré obsahuje údaje. Napríklad:

Vytvorili sme premennú jsonString, ktorá obsahuje reťazec JSON z nášho príkladu 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 otestovať vytlačením vlastností objektu shopperEmail a productName poľa obsahu.

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

V reálnej aplikácii váš kód JavaScript dostane objednávku ako reťazec JSON v odpovedi AJAX zo serverového skriptu, odovzdá reťazec metóde JSON.parse() a potom použije údaje 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. Tieto možnosti sú veľmi užitočné pri konverzii rôznych údajov na platné objekty JavaScript.

Práca s reťazcom JSON v PHP

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

Vytvorte reťazec 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:

12345, "shopperName" => "Vanya Ivanov", "shopperEmail" => " [chránený e-mailom]", "contents" => array(array("productID" => 34, "productName" => "Super produkt", "množstvo" => 1), array("productID" => 56, "productName" => "zázračný produkt", "množstvo" => 3)), "objednávka dokončená" => pravda); echo json_encode($cart); ?>

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":"Úžasný 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 ako druhý argument odovzdať rôzne príznaky. S ich pomocou môžete zmeniť princípy kódovania obsahu premenných do reťazca JSON.

Vytvorte premennú z reťazca JSON

Metóda json_decode() sa používa na konverziu reťazca JSON na premennú PHP. Nahradme náš príklad JavaScriptu metódou JSON.parse() kódom PHP:

shopperEmail. "
"; echo $cart->contents->productName."
"; ?>

Pokiaľ ide o JavaScript, tento kód vytvorí:

[chránený e-mailom] zázračný tovar

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 vo forme pridruženého poľa PHP, musíte do funkcie json_decode() zadať 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ý tovar

Funkcii json_decode() môžete tiež odovzdať ďalšie argumenty, aby ste určili hĺbku rekurzie a spôsob 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 odovzdávanie údajov medzi aplikáciami a počítačmi, najmä pri použití AJAX. Ak plánujete vývoj AJAX aplikácie, potom niet pochýb, že JSON bude tým najdôležitejším nástrojom vo vašej dielni.

V tomto článku chcem hovoriť o formáte výmeny textových údajov - JSON, 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ý s týmto konkrétnym jazykom. Ako mnoho iných textových formátov, aj JSON je pre ľudí ľahko čitateľný.

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

Praktický prínos použitia JSON pochádza z použitia technológie AJAX. Formát JSON je stručnejší a čitateľnejší ako XML a je natívny pre Javascript. Do JSON kódu je navyše možné vložiť plne funkčné funkcie.

Áno, 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.

Zobrazenie údajov 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 povedať: osoba s menom „ivan“, pod identifikátorom „1“, žijúca v krajine „Rusko“, pracuje v spoločnosti „yandex“ na oddelení „manažmentu“.

Uveďme si ďalší príklad. Stránka má formulár spätnej väzby AJAX. Návštevník vyplní informácie, následne sa odošle na server na overenie, ak sa nezistia žiadne chyby, informácia sa uloží do databázy a odošle sa odpoveď o úspešnom uložení. Ak sa však nájdu 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 svoju správu
  • 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 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"," manažment")); echo json_encode($json_data);

Reverzná transformácia údajov z formátu JSON

$json_string="("id":1,"name":"ivan","country":"Rusko","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; //Zobrazi meno 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ý". Nie je potrebné posielať objemné kusy HTML kódu.

Najčastejším problémom, ktorý bráni používateľom otvoriť tento súbor, je nesprávne priradený program. Ak to chcete opraviť v systéme Windows, musíte kliknúť pravým tlačidlom myši na súbor, v kontextovej ponuke presunúť myš nad položku „Otvoriť pomocou“ a z rozbaľovacej ponuky vybrať položku „Vybrať program ...“ . V dôsledku toho uvidíte zoznam nainštalovaných programov v počítači a môžete si vybrať ten správny. Odporúčame tiež zaškrtnúť políčko vedľa položky „Použiť túto aplikáciu pre všetky súbory JSON“.

Ďalším problémom, s ktorým sa naši používatelia tiež často stretávajú, je poškodený súbor JSON. Táto situácia môže nastať v mnohých prípadoch. Napríklad: súbor nebol úplne stiahnutý v dôsledku chyby servera, súbor bol pôvodne poškodený atď. Ak chcete tento problém vyriešiť, použite jedno z odporúčaní:

  • Pokúste sa nájsť požadovaný súbor v inom zdroji na internete. Možno budete mať šťastie, že nájdete lepšiu verziu. Príklad vyhľadávania Google: "File filetype:JSON" . Stačí nahradiť slovo „súbor“ požadovaným názvom;
  • Požiadajte o opätovné zaslanie pôvodného súboru, mohol byť poškodený počas prenosu;