JSON je skratka pre JavaScript Object Notation. Používa sa na opis JavaScript objektov. Je to formát na zdieľanie údajov, ktorý definuje hodnoty údajov pomocou párov kľúč-hodnota. Objekt JSON je podporovaný vo všetkých hlavných prehliadačoch. Tento návod vyžaduje, aby ste boli oboznámení s jazykom JavaScript a prácou s objektom JSON. Ak sa chcete s JSON oboznámiť, môžete si pozrieť náš prehľad formátu na zdieľanie údajov JSON. Môžete si tiež pozrieť, ako pracovať s JSON v JavaScripte.
Formát JSON sa používa aj na prenos údajov cez sieť. Na tento účel je potrebné údaje serializovať a deserializovať. Keď sú údaje vo formáte JSON, skonvertujú sa na reťazec pomocou metódy stringify. Na spätnú konverziu údajov do formátu objektu na manipuláciu sa používa metóda parse. Tento návod sa bude zaoberať krokmi používania JSON.parse() a JSON.stringify(). Začnime!
JSON.parse()
Táto metóda sa používa na konverziu reťazca JSON na objekt JSON, aby sa s ním dalo programovo manipulovať. Odovzdávaný reťazec musí byť platný reťazec JSON, inak sa vyhodí výnimka. Tento reťazec môže byť prijatý z akejkoľvek webovej služby alebo vzdialenej aplikácie.
Táto metóda prijíma dva parametre: reťazec a funkciu callback, ktorú možno použiť na manipuláciu s reťazcom pred jeho konverziou na objekt. Predpokladajme, že z webovej služby prijímame správu indikujúcu stav akcie, správu a stavový kód. Nižšie je uvedený jednoduchý príklad toho, ako možno reťazec skonvertovať na objekt.
Kód:
|
1 2 3 |
let json_string = '{"message":"Done with success", "status":200, "code":200}' let server_obj = JSON.parse(json_string); console.log(server_obj) |
Výstup:
|
1 |
{message: 'Done with success', status: 200, code: 200} |
Častým problémom je, keď sa na koniec reťazca pridajú čiarky, takže JSON.parse() vyhodí chybu, ak odovzdaný reťazec obsahuje čiarky na konci. Ak potrebujete manipulovať s hodnotami, môžete ako druhý argument odovzať callbackfunkciu.
Kód:
|
1 2 3 4 5 6 7 8 9 |
let string = '{"name":"XYZ","email":"xyz@example.com"}'; let obj = JSON.parse(string, (key, value) => { if (typeof value === 'string') { return value.toUpperCase(); } return value; }); console.log(obj) |
Výstup:
|
1 |
{name: 'XYZ', email: 'XYZ@EXAMPLE.COM'} |
JSON.stringify()
Metóda stringify robí presný opak metódy parse. Tu sa odovzdáva objekt JSON a návratovou hodnotou je reťazec. Tento reťazec môže byť odovzdaný napríklad inej vzdialenej webovej službe a potom znova analyzovaný na objekt JSON na manipuláciu.
Kód:
|
1 2 3 |
let obj = {message:"Done with success", status:200, code:200} let str = JSON.stringify(obj); console.log(str); |
Výstup:
|
1 |
{"message":"Done with success","status":200,"code":200} |
Metóda stringify môže prijímať dva argumenty: metódy replacera spacer. Metóda replacer sa môže použiť na nahradenie alebo vylúčenie akýchkoľvek hodnôt v reťazci.
Kód:
|
1 2 3 4 5 6 7 8 9 |
let obj = {message:"Done with success", status:200, code:200} let str = JSON.stringify(obj, (key, value) => { if (status === 200) { return undefined; } return value; }); console.log(str) |
Výstup:
|
1 |
{"message":"Úspešne dokončené","status":200,"code":200} |
Keď je spacer argument poskytnutý, každý prvok poľa alebo objektu je umiestnený na vlastný riadok a odsadený, aby sa indikovala jeho hĺbka v hierarchii objektov a polí. Nižšie je uvedený jednoduchý úryvok kódu, ktorý to ilustruje.
Kód:
|
1 2 3 |
let obj = {message:"Úspešne dokončené", status:200, code:200} let str = JSON.stringify(obj, null, "---"); console.log(str) |
Výstup:
|
1 2 3 4 5 |
{ ---"message": "Úspešne dokončené", ---"status": 200, ---"code": 200 } |
Záver
V tomto návode sme sa pozreli na dve užitočné metódy na prácu s obsahom vo formáte JSON. JSON objekty sú všade a pri vytváraní moderných aplikácií pomocou JavaScriptu sú tieto metódy veľmi užitočné. Ak sa chcete dozvedieť viac, pozrite si nasledujúce návody na našom blogu:
- Základy JavaScriptu: Ako pracovať s dátumom a časom
- Práca s JavaScriptom: Ako fungujú prototypy a dedičnosť
- Sprievodca pridaním JavaScriptu do HTML
Príjemné programovanie!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.