JSON .stringify()
Běžným použitím JSON je výměna dat do/z webového serveru.
Při odesílání dat na webový server musí být daty řetězec.
Převeďte objekt JavaScriptu na řetězec pomocí JSON.stringify()
.
Stringifikace objektu JavaScriptu
Představte si, že máme tento objekt v JavaScriptu:
const obj = {name: "John", age: 30, city: "New York"};
Pomocí funkce JavaScript JSON.stringify()
jej převeďte na řetězec.
const myJSON = JSON.stringify(obj);
Výsledkem bude řetězec následující za zápisem JSON.
myJSON
je nyní řetězec a je připraven k odeslání na server:
Příklad
const obj = {name: "John", age: 30, city: "New York"};
const myJSON =
JSON.stringify(obj);
V dalších kapitolách se dozvíte, jak odeslat JSON na server.
Stringifikace pole JavaScriptu
Je také možné stringifikovat pole JavaScriptu:
Představte si, že máme toto pole v JavaScriptu:
const arr = ["John", "Peter", "Sally", "Jane"];
Pomocí funkce JavaScript JSON.stringify()
jej převeďte na řetězec.
const myJSON = JSON.stringify(arr);
Výsledkem bude řetězec následující za zápisem JSON.
myJSON
je nyní řetězec a je připraven k odeslání na server:
Příklad
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON =
JSON.stringify(arr);
V dalších kapitolách se dozvíte, jak odeslat řetězec JSON na server.
Ukládání dat
Při ukládání dat musí mít data určitý formát a bez ohledu na to, kam je chcete uložit, text je vždy jedním z legálních formátů.
JSON umožňuje ukládat objekty JavaScriptu jako text.
Příklad
Ukládání dat do místního úložiště
// Storing data:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Výjimky
Stringify Dates
V JSON nejsou povoleny objekty data. Funkce JSON.stringify()
převede všechna data na řetězce.
Příklad
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Řetězec můžete v přijímači převést zpět na objekt data.
Funkce stringifikace
V JSON nejsou funkce povoleny jako hodnoty objektů.
Funkce JSON.stringify()
odstraní z objektu JavaScriptu všechny funkce, klíč i hodnotu:
Příklad
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
To lze vynechat, pokud před spuštěním JSON.stringify()
funkce převedete své funkce na řetězce.
Příklad
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Pokud odešlete funkce pomocí JSON, funkce ztratí svůj rozsah a příjemce by je musel převést zpět na funkce pomocí eval().