JSON znamená JavaScript Object Notation. Používá se k popisu JavaScript objektů. Jedná se o formát pro sdílení dat, který specifikuje datové hodnoty pomocí párů klíč-hodnota. Objekt JSON je podporován ve všech hlavních prohlížečích. Tento návod vyžaduje, abyste byli obeznámeni s JavaScriptem a prací s objektem JSON. Chcete-li se s JSON seznámit, můžete se podívat na náš přehled formátu pro sdílení dat JSON. Můžete se také podívat, jak pracovat s JSON v JavaScriptu.
Formát JSON se používá také k přenosu dat po síti. Za tímto účelem je třeba data serializovat a deserializovat. Když jsou data ve formátu JSON, převedou se na řetězec pomocí metody stringify. Pro převod dat zpět na formát objektu pro manipulaci se používá metoda parse. Tento návod se bude zabývat kroky použití JSON.parse() a JSON.stringify(). Začněme!
JSON.parse()
Tato metoda se používá k převodu řetězce JSON na objekt JSON, aby s ním bylo možné programově manipulovat. Předávaný řetězec musí být platný řetězec JSON, jinak bude vyhozena výjimka. Tento řetězec lze přijmout z jakékoli webové služby nebo vzdálené aplikace.
Tato metoda přijímá dva parametry: řetězec a callback funkci, kterou lze použít k manipulaci s řetězcem před jeho převodem na objekt. Předpokládejme, že z webové služby přijímáme zprávu indikující stav akce, zprávu a stavový kód. Níže je jednoduchý příklad toho, jak lze řetězec převést 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émem je, když jsou na konec řetězce přidány nadbytečné čárky, takže JSON.parse() vyhodí chybu, pokud předaný řetězec obsahuje na konci čárky. Pokud potřebujete manipulovat s hodnotami, můžete předat callbackfunkci jako druhý argument.
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()
Metoda stringify dělá přesný opak metody parse. Zde se předává objekt JSON a návratovou hodnotou je řetězec. Tento řetězec lze předat například jiné vzdálené webové službě a poté jej znovu analyzovat (parse) na objekt JSON pro manipulaci.
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} |
Metoda stringify může přijímat dva argumenty: replacer a spacer. Metodu replacer lze použít k nahrazení nebo vyloučení jakýchkoli hodnot v řetězci.
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":"Úspěšně dokončeno","status":200,"code":200} |
Pokud je spacer argument poskytnut, každý prvek pole nebo objektu je umístěn na svůj řádek a odsazen, což značí jeho hloubku v hierarchii objektů a polí. Níže je jednoduchá ukázka kódu, která to ilustruje.
Kód:
|
1 2 3 |
let obj = {message:"Úspěšně dokončeno", status:200, code:200} let str = JSON.stringify(obj, null, "---"); console.log(str) |
Výstup:
|
1 2 3 4 5 |
{ ---"message": "Úspěšně dokončeno", ---"status": 200, ---"code": 200 } |
Závěr
V tomto návodu jsme se podívali na dvě užitečné metody pro práci s obsahem ve formátu JSON. Objekty JSON jsou všude, a při tvorbě moderních aplikací v JavaScriptu jsou tyto metody velmi užitečné. Chcete-li se dozvědět více, podívejte se na následující návody na našem blogu:
- Základy JavaScriptu: Jak pracovat s datem a časem
- Práce s JavaScriptem: Jak fungují prototypy a dědičnost
- Průvodce přidáním JavaScriptu do HTML
Příjemné programování!
Komentáře
Zatím žádné komentáře. Buďte první.