This article has been localized into Czech by the community.
JSON
JSON, což je zkratka pro JavaScript Object Notation (notace objektů JavaScriptu), je formát vytvořený pro výměnu dat mezi stranami. Používá syntaxi, která je snadno čitelná a zapisovatelná jak pro lidi, tak pro stroje, a přestože má ve svém názvu část "JavaScript", lze jej ve skutečnosti používat pro výměnu dat mezi většinou moderních programovacích jazyků.
Jakmile uvidíte data ve formátu JSON, rychle si uvědomíte, jak moc to připomíná kód v JavaScriptu. V podstatě popisuje jeden nebo více objektů pomocí formátu, který vypadá velmi podobně jako normální objekty v JavaScriptu. Zvažte tento příklad:
let user =
{
name:
{
firstName: "John",
lastName: "Doe"
},
age: 42
};
Toto je běžný objekt JavaScriptu, popisující uživatele s křestním jménem a příjmením, stejně jako věkem. Když je zapsán jako JSON, vypadalo by to takto:
{
"name":
{
"firstName": "John",
"lastName": "Doe"
},
"age": 42
}
Tento kousek JSONu je poměrně snadno čitelný a pochopitelný pro lidské oko, a může být analyzován téměř jakýmkoli moderním programovacím jazykem a převeden na skutečný objekt, včetně samozřejmě JavaScriptu.
Metody JSON
JavaScript obsahuje vestavěný objekt pro práci s JSONem, který se nazývá... JSON. Podobně jako vestavěný objekt Math, má pouze statické členy, takže jednoduše voláte dostupné metody přímo na objektu JSON. Podívejme se na tyto metody.
JSON.parse()
Kdykoli obdržíte data ve formátu JSON, metoda parse() může být použita k načtení dat a převodu na skutečné objekty a pole JavaScriptu. Například můžeme vzít příklad výše, načíst JSON a získat z něj objekt uživatele. Zde je příklad:
let jsonString = `
{
"name":
{
"firstName": "John",
"lastName": "Doe"
},
"age": 42
}`;
let user = JSON.parse(jsonString);
alert(user.name.firstName + " " + user.name.lastName + " is " + user.age + " years old");
Všimněte si, jak mohu vzít tento řetězec dat JSON, který by stejně dobře mohl pocházet z externího zdroje, a převést ho na běžný objekt JavaScriptu, jednoduše voláním metody parse().
JSON.stringify()
Zatímco metoda parse() vám umožňuje převést řetězec na objekt, metoda stringify() udělá přesný opak: vezme objekt nebo pole JavaScriptu a převede ho na řetězec ve formátu JSON. To můžete využít, pokud chcete poslat vaše objekty/pole na jiné místo, nebo pokud potřebujete zveřejnit je ve společném formátu. Takto se to dá použít:
let user =
{
name: "John Doe",
age: 42
};
// Output: {"name":"John Doe","age":42}
let jsonString = JSON.stringify(user);
alert(jsonString);
S tímto příkladem by proměnná jsonString mohla být nyní použita k předání objektu user na jiné místo - je to tak jednoduché! A jak bylo zmíněno, tato metoda a obecně JSON dobře fungují i s poli. Pojďme trochu rozšířit výše uvedený příklad, abychom to ilustrovali:
let users = [];
let user =
{
name: "John Doe",
age: 42
};
users.push(user);
user =
{
name: "Jane Doe",
age: 39
};
users.push(user);
// Output: [{"name":"John Doe","age":42},{"name":"Jane Doe","age":39}]
let jsonString = JSON.stringify(users);
alert(jsonString);
Všimněte si, jak vytvořím pole a přidám do něj dva různé uživatelské objekty, než pole převedu na JSON. Jak můžete vidět, toto funguje stejně dobře - náš JSON řetězec je nyní polem, jak je znázorněno okolními hranatými závorkami, obsahujícími dva uživatelské objekty.
Shrnutí
JSON je velmi široce používaný formát pro výměnu dat mezi stranami, a přestože jeho syntaxe je téměř identická s tím, jak JavaScript deklaruje pole a objekty, JSON je široce podporován téměř všemi moderními programovacími jazyky. Jak můžete vidět z příkladů v tomto článku, práce s JSONem v JavaScriptu je poměrně snadná, díky vestavěnému objektu JSON.