Co je JSON? Úvod do popisu JSON Json.

Vydali jsme novou knihu „Marketing obsahu sociálních médií: Jak se dostat do hlavy předplatitelů a přimět je, aby si vaši značku zamilovali.“

JSON je textový formát pro výměnu dat založený na multiparadigmatickém programovacím jazyce. Jeho hlavním účelem je ukládat a přenášet strukturovaný tok informací.

S jednoduchými pravidly konstrukce znaků JavaScriptu může člověk poskytnout snadný a spolehlivý způsob, jak uložit jakýkoli druh informací, ať už jde o jednoduché číslo, celé řetězce nebo velké množství různých objektů vyjádřených v prostém textu.

Kromě toho se formát JSON používá ke kombinování objektů a datových struktur dohromady jako sady komponent, čímž tvoří programové jednotky, které umožňují ukládat a zpracovávat komplexní záznamy sestávající z několika proměnných různých typů.

Jakmile je soubor vytvořen, lze řetězce, které obsahuje, poměrně snadno přesměrovat na jiné místo na webu libovolnou datovou cestou. Důvodem je, že řetězec je prostý text.

Co znamená JSON?

Ačkoli jej lze použít téměř ve všech skriptovacích jazycích, jeho název odkazuje na JavaScript. Nástroj má následující výhody:

  1. Zaujímá relativně malý objem, kompaktní.
  2. Textový obsah může být snadno vytvořen a čitelný počítačem i lidmi.
  3. Lze snadno převést do struktury pro téměř všechny druhy formálních jazyků používaných k vytváření počítačových programů.
  4. Většina programovacích jazyků, ať už je to JavaScript, Ruby, Python nebo PHP, je vybavena funkcemi a speciálními nástroji pro čtení a úpravu souboru.

Ve velké většině případů se formát JSON používá pro předávání informací ze serveru do prohlížeče. Tento proces zpravidla probíhá v režimu „na pozadí“ výměny prohlížeče s webovým serverem a doručení se provádí pomocí AJAX. Je to proto, že není potřeba znovu načítat stránku během procesu doručování dat.

Funguje podle následujícího scénáře:

  1. Uživatel například klikne na kartu produktu v internetovém obchodě.
  2. JavaScript zabudovaný do prohlížeče, aby byly webové stránky funkčnější, vytváří požadavek AJAX na soubor skriptu PHP, který běží na serveru. Díky tomu se přenáší ID vybraného produktu.
  3. Programový soubor skriptu PHP přijímá název produktu, popis, cenu a další informace obsažené v databázi.
  4. Poté se vytvoří řetězec a předá prohlížeči.
  5. JavaScript převezme tento řetězec, obnoví informace, které obsahuje, z jeho zakódované reprezentace a poté zobrazí informace o vybraném produktu na webové stránce uživatele.

To vše se děje v řádu milisekund. Pokud je však JavaScript v počítači z jakéhokoli důvodu zakázán, webová stránka se nenačte nebo zobrazí chyby.

Jak funguje formát JSON

V JSON jsou datové typy rozděleny do několika kategorií: jednoduché a složité. První typ zahrnuje především textové řetězce a čísla, zatímco druhý typ zahrnuje objekty. Existuje celkem šest hlavních typů:

  1. číslice. V tomto případě mohou být čísla jak celá čísla bez znaménka, tak celá čísla se znaménkem. Zejména může obsahovat zlomkovou část a reprezentaci reálných čísel jako zlomkovou část logaritmu a exponentu. Soubor stejně umožňuje použití celých čísel a dělení s plovoucí desetinnou čárkou. Tato metoda se používá v JavaScriptu pro všechny číselné hodnoty bez výjimky, ale v jiných matematických knihovnách, které ji používají, může kódování probíhat pomocí zcela jiných algoritmů.
  2. Libovolná sekvence (řetězec) znaků latinské abecedy, čísel a interpunkčních prvků (od nuly a znaků Unicode). Každý následující řádek se od předchozího odděluje pomocí dvojice interpunkčních znamének - uvozovek ("text") nebo pomocí znaku, s pravopisným opakem normálního znaku, lomítka.
  3. Literály nebo konstanty obsažené přímo v textu. Může to být jakýkoli z true a false nebo jejich ekvivalenty.
  4. Pole. Je to uspořádaný seznam znaků od nuly výše. Každá postava může být reprezentována v jakékoli podobě.
  5. Objekt. Je to chaotické složení párů klíč/hodnota. Protože primární funkcí objektů je reprezentovat abstraktní datový typ, doporučuje se (ale není to nutné), aby klíče byly jedinečné.
  6. Prázdná hodnota označená slovem "Null".

Mezery mezi znaky jsou povoleny, pokud se používají mezi syntaktickými jednotkami. K tomu se používá několik znaků: obvyklé odsazení, vodorovné textové tabulátory a lomítko.

Jak otevřít formát JSON

Formát výměny textových dat může být reprezentován populárními standardy kódování, které umožňují kompaktnější ukládání a odesílání znaků Unicode. Zejména výchozí je UTF-8. Lze také použít UTF-16 a UTF-32. Jejich použití je dáno tím, že všechny tři standardy podporují celou znakovou sadu.

Ale pokud jsou escapovány (neuvozovány), aby mohly být použity jako regulární výraz, mohou být zapsány tak, aby reprezentovaly znaky v dalších rovinách pomocí UTF-16.

Nejjednodušší způsob, jak otevřít formát JSON, je použít Poznámkový blok na PC. Chcete-li to provést, musíte vytvořit a otevřít nový textový dokument, v levém horním rohu vyberte „Soubor“ a poté „Otevřít“.

Po nalezení potřebného dokumentu byste měli kliknout na tlačítko „Otevřít“ průzkumníka.

Dokument se otevře a bude k dispozici pro prohlížení a úpravy.

Kromě toho existují programy třetích stran pro otevření formátu JSON. Mezi nimi jsou Altova XMLSpy , Notepad++ , Komodo Edit , Sublime Text atd.

Jak vytvořit soubor

Formát JSON se obvykle používá k práci (ukládání a používání) servisních informací. Obvykle se jedná o tabulku počtu zaměstnanců, kterou by neměl vidět vývojář ani publikum webového zdroje.

Existuje několik způsobů, jak vytvořit soubor s příslušnou příponou. V prvé řadě to lze provést pomocí běžného textového editoru, který je součástí operačního systému Microsoft Windows. Chcete-li to provést, musíte otevřít Poznámkový blok, vložit příslušný kód a uložit dokument do obvyklé a jediné dostupné přípony. Poté jej musíte změnit na požadovanou možnost.

Druhá metoda zahrnuje použití služeb třetích stran. Nejoblíbenější je JSON Editor Online. Je to mnohem pohodlnější než možnost Poznámkový blok. Servisní rozhraní je prezentováno ve formě dvou pracovních oblastí.

V první zóně se přímo pracuje na tvorbě dat, ve druhé zóně jsou k tomu umístěny nástroje. Po dokončení procesu vytváření musíte kliknout na tlačítko "Uložit" a zvolit způsob uložení výsledku: na disk nebo online.

Jak již bylo uvedeno, používání online služby je mnohem pohodlnější než Poznámkový blok. Je to dáno tím, že služba během provozu automaticky zjišťuje syntaktické chyby a zvýrazňuje je, aby si uživatel mohl všimnout opomenutí a okamžitě je opravit.

Proměnné, pole a objekty jsou známou a pohodlnou formou reprezentace dat. Je zvykem popisovat data v jazyce prohlížeče JavaScript, což není nutné v jazyce serveru PHP. Formát JSON umožňuje zobecnit je do jednoho celku a nezaměřovat se na programovací jazyk. V tomto případě jsou data převedena do dvojic: "jméno = hodnota". Hodnota v každém z nich může být také sbírkou takových párů.

Je obvyklé spojovat JSON se složenými závorkami a to druhé je zcela oprávněné, protože JavaScriptový formát JSON = Object Notation. V posledních zvláště dynamických letech se mnohé změnilo. To, co bylo vytvořeno pro konkrétní účel, často přineslo nečekané výsledky nebo otevřelo nové obzory.

Výměna dat: prohlížeč - server

Technologie AJAX se stala tradiční, obvyklou obnovou stránky zcela přestalo být populární. Návštěvník, který stránku otevře, zahájí sérii dílčích výměn dat, kdy se určité stránky změní pouze na místě, které je relevantní.

Předpokládá se, že vzhled JSON je spojen s používáním AJAX, ale ve skutečnosti asociativní a jeho objektová notace (vlastnosti syntaxe pro popis a používání objektů) s JSON souvisí mnohem více než výměna dat mezi prohlížečem a server.

Vzhledem k tomu, že obsah stránek moderních stránek se stal skutečně „masivním“ (volumetrickým), účinnost formátu pro výměnu dat se stala obzvláště důležitou. To neznamená, že se JSON stal novou reprezentací dat, ale skutečnost, že je již dlouho prvkem syntaxe JavaScriptu, je významná.

Používání azbuky při pojmenovávání proměnných je velmi neočekávaný jev (nesmysl), ale funguje v nejnovějších verzích Chrome, Firefox a dokonce i Internet Explorer 11.

Cyrilice a JSON

Tento zcela neočekávaný jev byste samozřejmě neměli používat, pamatujte si, jak snadno se hodnoty proměnných napsaných ruskými písmeny změní na krakozyabry: co můžeme říci o jménech, zejména o externích.

Je pochybné, že iniciativu v názvech v azbuce bude podporovat vnější prostředí prohlížeče, se kterým se neustále musí potýkat. Ale tato skutečnost si zaslouží pozornost z prostého důvodu, že formát JSON je schopnost psát názvy a hodnoty jakýmkoli způsobem, který si vývojář přeje. To je důležité, protože u každého problému popis rozsahu, jak to vyžaduje, značně zjednodušuje ladění a snižuje počet chyb.

Nezáleží na tom, na čem syntaktická inovace vycházela – JSON, důležité je, že dávala zákonné právo a reálnou možnost se shodovat: „jakékoli jméno = jakákoli hodnota“.

Jazyku JavaScript musíme vzdát hold: to, co poskytuje syntaxe, vývojáře nezavazuje a nic mu neukládá. Vývojář volně používá syntaxi jazyka pro optimální tvorbu datového modelu a algoritmus pro jejich použití.

PHP a JSON

Server přijímá data ve formátu JSON a poskytuje (zejména prostřednictvím PHP) možnost je zpracovat tak, jak jsou, a vrátit výsledek zpět do prohlížeče v podobném formátu. Zdrojové pole PHP:

  • $cJSON = pole ("a"=> "alfa", "b"=> "beta", "g"=> "gama").

Převod do formátu JSON pro předání do prohlížeče:

  • $cJS = json_encode($cJSON).

Výsledek:

  • ("a":"alfa","b":"beta","g":"gama").

Hnízdění zobrazené na fotografii je povoleno.

Zde bylo vytvořené pole doplněno o nový prvek „do sebe“ s automatickým indexem „0“ a poté opět se zadaným indexem „z“.

Json_decode() převede řetězec JSON na pole PHP. Podobných výsledků lze dosáhnout manipulací s funkcemi a funkcí explode(). V některých případech je tato možnost výhodnější.

úroveň vnoření

Prvky lze do sebe vnořovat jak na straně prohlížeče, tak na straně serveru. V praxi formát JSON (popsaný v RFC 4627) poskytuje více než 4 úrovně vnoření, ale tato schopnost by neměla být zneužívána.

Nejlepší je nikdy nepřekračovat rozumnou dostatečnost, kód je čitelný a usnadňuje ladění a pochopení pro ostatní vývojáře.

JSON se obvykle označuje jako datové struktury, které jsou jednodušší než XML, srozumitelné jak lidem, tak počítačům. To platí, když je množství dat malé a vývojář správně zvolil úroveň vnoření. Ve všech ostatních případech je obtížné spočítat počet hranatých závorek a pochopit jak na straně prohlížeče, tak na straně serveru.

soubory JSON

Použití JSON v praxi se často neomezuje na krátký řetězec přístupný vnímání. Jakékoli datové konstrukce jsou vždy pragmatické. JSON lze přitom efektivně využít jak v reálných datech úkolu (podnikový personál), tak pro implementaci dočasných dat (objektová cache).

Enterprise State a formát JSON: příklad

Obvykle záznamem o jedné osobě je příjmení, jméno, patronymie, rok narození, specializace, vzdělání, ... a několik dalších jednoduchých hodnot. I ve zvlášť náročných firmách nepřesáhne rekord o jednom člověku tucet nebo dva obory. Toto je vjemové a lze jej umístit do řádku databáze.

Pokud firma zaměstnává několik lidí, je to jedna věc, ale pokud jde o desítky tisíc, je to něco úplně jiného. Databázi můžete nadále používat, ale její uložení jako soubor vypadá praktičtěji a snáze se používá.

JSON je prostý textový soubor. Případ s personálem, v pořádku. Vždy si to můžete přečíst. Otevřít a upravit je také k dispozici v libovolném textovém editoru, který nemá ve zvyku přidávat své servisní informace k obsahu souboru. Obecně platí, že *.json je čistý text uvnitř prohlížeče i uvnitř souboru – řetězec.

Fotografie ukazuje vyrovnávací paměť objektu, který tvoří obrázek, příklad.

Toto je příklad obsahu souboru generovaného webem, který poskytuje barevný 3D tisk na hrnky a keramiku. S takovým formátem JSON je přirozeně rozhodování o tom, jak jej otevřít, opravdu problematické. V tomto a podobných případech však není problém se čtením souboru: PHP soubor přečte, analyzuje a předá prohlížeči. Data změněná návštěvníkem jsou vrácena na server a zapsána zpět.

V tomto případě použití se soubor chová jako proměnná, která je uložena mimo kód. V případě potřeby obdrží proměnná hodnotu ze souboru, a pokud ji návštěvník změní v dialogu poskytnutém stránkou, všechny změny budou zaznamenány tak, jak jsou. Není třeba číst a kontrolovat obsah souboru.

JSON se často používá k ukládání a používání informací o službách – nejedná se o personální tabulku, vývojář ani návštěvník webu ji nemusí vidět.

XML a JSON

„Všechno má svůj čas“ je klasická znalost, akceptovaná jako axiom ještě před příchodem programování. "Nic se nezdá jen tak" - to bylo také předtím, než člověk napsal první srozumitelný program v umělém jazyce.

Datové formáty vycházejí ze skutečné potřeby a jsou založeny na získaných znalostech. HTML má svůj vlastní způsob, XML má svůj vlastní způsob a JSON je objektová logika JavaScriptu rozšířená do dalších jazyků. Srovnávat jeden s druhým není nejlepší věc. Každému, co jeho vlastní.

XML si se svými úkoly poradí skvěle a zjevně se nezapíše do historie. A JSON se používal až do roku 2006, jen ne každý vývojář považoval za svou povinnost deklarovat určité možnosti prezentace svých dat.

V praxi se vyskytly případy, kdy byly v BASICu napsány programy, které nepoužívaly JSON jako takový, ale dokonale uložené dvojice název = hodnota a zpřístupnily je správným algoritmům ve správný čas.

Speciální znaky ("`", "~", "|", ...) a datové formáty

Díky zvyku pracovat s asociativními poli a objekty v JavaScriptu je používání JSON přirozené a pohodlné. Toto je skutečně skvělý formát, ale schopnost rozdělovat a spojovat, manipulovat s řetězci a poli, má mnohem hlubší kořeny.

Funkce join/split a PHP implode/explode umožňují pohodlně a efektivně používat jak datové formáty XML a JSON, tak i vaši vlastní verzi. Ten druhý je často lepší, zatímco první dva jsou ideální pro obecné případy použití. Pokud se informace přenášejí na jiného vývojáře, server, soubor nebo databázi, XML a JSON je lepší nenacházet. Všichni s nimi pracují, takže přenos / příjem informací nepotřebuje komentáře.

Použití JSON v Androidu

Čtení a zápis dat ve formátu JSON v Androidu není jen normou, ale existuje mnoho objektů, které jsou orientovány na práci s tímto konkrétním datovým formátem.

Používá formát JSON. Možná je to pravda, ale otázka není ve fenomenalitě sociálních sítí, ale v tom, že prezentace informací ve formátu „jméno = hodnota“ je opravdu pohodlná jak pro programování, tak pro použití. Na rozdíl od přísného a notoricky známého „XML“ se jedná o skutečně lidsky přátelský formát.

Asociativní pole

Stalo se, že proměnné měly být popsány (JavaScript) nebo alespoň indikovat počáteční hodnotu (PHP). V obou případech může proměnná velmi snadno změnit svůj typ. V případě potřeby jazyk tuto transformaci provede automaticky.

Proč by ale proměnná nemohla také změnit svůj název, objevit se během provádění algoritmu a zmizet, když už není potřeba? Asociativní pole tento problém řeší, ale když se použijí takové relativně dynamické proměnné, název pole a přidružené konstrukce syntaxe budou následovat tam, kde jsou použity.

Tato okolnost je zvláště výrazná v PHP, ale můžete se s tím smířit, stejně jako se symbolem „$“ v názvu proměnné a kombinací „$this->“ uvnitř objektu. Při současném programování v JavaScriptu a PHP se ze začátku opravdu divíte, jak je všechno jinak, ale pak se vše stane tak známým a přirozeným...

Asociativní pole -> JSON

V tomto příkladu je dokument *.docx vytvořen pomocí knihovny PHPOffice/PHPWord a pole aProperties obsahuje vlastnosti dokumentu (autor, společnost, název, kategorie, datum vytvoření...).

Druhé pole obsahuje data stránky:

  • orientace (na šířku nebo normální);
  • rozměry vertikálně a horizontálně;
  • výplň (levý, horní, dolní, pravý okraj);
  • záhlaví a zápatí.

Dokument je generován na serveru, kde je nainstalována knihovna PHPOffice/PHPWord. Stránka umožňuje správu hodnot těchto polí pomocí JavaScriptu. Výsledek ve formátu JSON je vrácen zpět na server a použit v algoritmech PHP, v jeho konstrukcích, tedy v polích.

Dynamické proměnné

Formát JSON řeší problém dynamických proměnných. Zde můžete vytvářet, upravovat a mazat proměnné bez zbytečného syntaktického nepořádku. Vypadá pěkně a používá se v JavaScriptu.

V tomto příkladu funkce GetOjInfo() načte název hodnoty a hodnotu z objektu. Objekt řetězce JSON přiřazený k proměnné ojInfo má zpočátku tři prvky: jméno, věk a práci. O něco později je přidána proměnná Status.

Po prvním příkazu delete ztratí řádek ojInfo prvek stáří, po druhém odstranění prvek práce. Pokud předpokládáme, že tento řádek je sbírkou proměnných, které mají určitý význam, pak pomocí JSON můžete skutečně vytvářet, měnit a mazat jakoukoli jejich sadu mimo operační pole (syntaxi) popisu a zpracování jazyka JavaScript.

Formát JSON nebyl pro tuto možnost navržen, ale je to možné, praktické a pohodlné.

Lekce, která se zabývá tím, co je JSON a jaké má výhody oproti jiným datovým formátům.

Pochopení JSON

JSON (JavaScript Object Notation) je textový formát pro reprezentaci dat v zápisu objektů JavaScript.

To znamená, že data v JSON jsou organizována stejným způsobem jako v objektu JavaScriptu. Ale na rozdíl od posledně jmenovaného má záznamový formát JSON některé funkce, o kterých se bude diskutovat o něco později.

JSON se obvykle používá ve spojení s AJAX, takže server může předávat data ve vhodné formě skriptu JavaScript, který je pak zobrazí na stránce.

Struktura formátu JSON

Kdo je obeznámen s procesem vytváření objektů v JavaScriptu, neuvidí ve struktuře formátu JSON nic nového. Je to proto, že struktura JSON odpovídá struktuře objektu JavaScript s určitými omezeními.

Je snazší si představit JSON jako kontejner prvků. Každý prvek v takovém kontejneru je nějaká strukturální jednotka skládající se z klíče a hodnoty.

V tomto případě hodnota přímo souvisí s klíčem a tvoří tzv. pár klíč-hodnota. Abyste v takovém objektu získali hodnotu, musíte znát jeho klíč. Syntakticky jsou taková data v JSON zapsána následovně:

Ve výše uvedeném záznamu můžete vidět, že klíč je oddělen od hodnoty dvojtečkou (:). V tomto případě musí být klíč v objektu JSON uzavřen do dvojitých uvozovek. Toto je první funkce JSON, která jej odlišuje od objektu JavaScriptu. Protože v objektu JavaScript nemusí být klíč (vlastnost objektu) uzavřen do dvojitých uvozovek.

Například struktura objektu, která je platná z pohledu JavaScriptu, ale není platná z pohledu JSON:

Var person = ( jméno: "John"; ) // Objekt JavaScript

Upozornění: snažte se název klíče nastavit tak, aby nekomplikoval přístup k datům, tzn. při sestavování jména je vhodnější použít zápis velikosti velblouda nebo použít podtržítko ("_") ke spojení slov.

Hodnota klíče v JSON může být zapsána v jednom z následujících formátů: řetězec (řetězec), číslo (číslo), objekt (objekt), pole (pole), boolean (logická hodnota true nebo false), null (speciální hodnota JavaScriptu) .

Tento druhé omezení v JSON, protože objekt JavaScriptu může obsahovat jakýkoli typ dat, včetně funkce.

Var person = ( "name" : "John"; "setName": function() ( console.log(this.name); ) ) // objekt JavaScript

Čárka (,) se používá k oddělení jednoho prvku (páru klíč-hodnota) od druhého.

Zvažte například JSON sestávající z různých datových typů.

Pozor: Formát reprezentace dat JSON neumožňuje použití komentářů ve své struktuře.

Práce s JSON v JavaScriptu

Na rozdíl od objektu JavaScriptu je JSON řetězec.

Například:

// například proměnná personData obsahuje řetězec, který je JSON var personData = "("name":"Ivan","age":37,"mother":("name":"Olga","age": 58),,"children":["Masha","Igor","Tanya"],"ženatý": pravda,"pes": null)";

Práce s JSON se obvykle provádí dvěma směry:

  1. Analýza je překlad řetězce obsahujícího JSON do objektu JavaScriptu.
  2. Převod objektu JavaScriptu na řetězec JSON. Jinými slovy, tato akce dělá opak analýzy.

Analýza JSON

JSON parsování, tzn. překlad řetězce JSON do objektu JavaScript se provádí pomocí metody eval() nebo parse().

Pomocí metody eval():

// proměnná osoba je objekt JavaScriptu, který se získá spuštěním kódu JSON (řetězec) var person= eval("("+personData+")");

Pomocí metody JSON.parse():

// proměnná osoba je objekt JavaScriptu, který se získá analýzou řetězce JSON var person = JSON.parse(personData);

Převod objektu JavaScriptu na řetězec JSON

Překlad objektu JavaScriptu do řetězce JSON se provádí pomocí metody JSON.stringify(). Tato metoda dělá opak metody JSON.parse().

Var personString = JSON.strigify(osoba);

Výhody formátu JSON

Formát reprezentace dat JSON má následující výhody:

  • pohodlné a rychlé metody pro převod (parsování) řetězce JSON na objekt JavaScript a naopak;
  • jasná a jednoduchá struktura dat;
  • velmi malá velikost ve srovnání s jinými datovými formáty (např. XML). Formát JSON totiž obsahuje minimální možné formátování, tzn. při psaní se používá pouze několik speciálních znaků. To je velmi důležitá výhoda, protože data prezentovaná ve formátu JSON se načtou rychleji, než kdyby byla prezentována v jiných formátech.

Vzhledem k tomu, že tento formát má spoustu výhod, začal se používat nejen v JavaScriptu, ale také v mnoha dalších jazycích, jako je C, Ruby, Perl, Python, PHP atd.

Porovnání formátů JSON a XML

Formát JSON má oproti formátu XML následující výhody:

  1. Při předávání některých dat bude velikost JSON výrazně menší než velikost XML.
  2. JSON má pohodlnější metody pro převod do datových struktur JavaScriptu než XML.
  3. JSON je jednodušší vytvořit než XML.

Práce s daty JSON po analýze se provádí jako s objektem JavaScript.

//JSON var personData = "("jméno":"Ivan","věk":37,"matka":("jméno":"Olga","věk":58),,"children":["Masha" ,,Igor","Tanya"],"vdaná": pravda,"pes": null)"; //JavaScript person objekt var person = JSON.parse(personData);

Zvažte hlavní body:

//získání hodnot klíče (vlastnosti) name person.name; osoba["jméno"]; //získání hodnot názvu klíče (vlastnosti) umístěného v objektu matka osoba.matka.jméno; //smazat věkový prvek delete(person.age) //přidat (nebo aktualizovat) klíč (vlastnost) person.eye = "hnědá"; //při práci s poli musíte použít metody navržené speciálně pro práci s poli //odebrat 1 prvek z pole (metoda spojení) person.children.splice(1,1) //přidat prvek do pole (metoda push ) osoba.děti. push("Kate");

Chcete-li iterovat prvky v objektu, můžete použít smyčku for..in:

For (osobní klíč) ( if (person.hasOwnProperty(klíč)) ( //klíč = klíč //hodnota = osoba console.log("Klíč = " + klíč); console.log("Value = " + osoba) ; ) // pokud má objekt osoba klíč (pokud má osoba vlastnost klíče) ) // iteruje přes všechny klíče (vlastnosti) v objektu

K iteraci prvků pole můžete použít následující smyčku:

Pro (var i=0; i

JSON(JavaScript Object Notation, JavaScript object notation) je formát reprezentace strukturovaných dat používaný k přenosu dat přes internet.

Formát JSON je ve skutečnosti běžný řetězec.

Syntaxe JSON

Syntaxe JSON je poměrně malá, obsahuje pouze popis, jak přenášená data vypadají.

Datové typy JSON

V JSON lze datové typy rozdělit do dvou kategorií: jednoduché a složité.

  • tětiva- textové řádky (obvykle se jim říká jednoduše - řádky)
  • číslo- čísla
  • booleovský– logické (booleovské) hodnoty
  • nula

Mezi komplexní typy patří:

  • objekt- předměty
  • pole- pole

Syntaxe JSON je vypůjčena z JavaScriptu, takže k reprezentaci hodnot jednoduchých a komplexních typů se používá stejná syntaxe jako v JavaScriptu.

Jednoduché hodnoty

Nejjednodušším příkladem kódu JSON je jakákoli hodnota jednoduchého typu:

5 2.3 "Dobrý den!" pravá nula

V JSON musí být řetězce uzavřeny pouze do dvojitých uvozovek. Použití jednoduchých uvozovek má za následek chybu syntaxe.

Objekty

Objekt JSON je složený seznam nulových nebo více vlastností (párů název:hodnota) oddělených čárkami. Názvy vlastností objektů musí být uzavřeny do dvojitých uvozovek. Chybějící dvojité uvozovky nebo použití jednoduchých uvozovek v názvu vlastnosti je chyba. Vlastnosti mohou obsahovat hodnoty libovolného typu (jednoduché nebo složité):

( "jméno": "Homer", "věk": 40, "práce": ( "místo": "Jaderná elektrárna", "umístění": "Springfield" ) )

Pole

Pole JSON je uzavřený seznam nula nebo více hodnot oddělených čárkami. Pole může obsahovat hodnoty libovolného typu (jednoduché nebo složité):

[ ( "jméno": "Homer", "věk": 40, "práce": ( "místo": "Jaderná elektrárna", "místo": "Springfield" ), "děti": [ "Bart", "Lisa" ", "Maggie" ] ), ( "jméno": "Marge", "věk": 37, "práce": ( "místo": "Domov", "místo": "Springfield" ), "děti": [ "Bart", "Lisa", "Maggie"] )]

Co je JSON a čeho je schopen? V tomto článku se dozvíte, jak pomocí JSON snadno pracovat s daty. Podíváme se také na to, jak pracovat s JSON pomocí PHP a JavaScriptu.

Pokud jste vyvíjeli webové stránky nebo webové aplikace obecně, je pravděpodobné, že jste o JSON alespoň zběžně slyšeli. Ale co přesně znamená JSON? Co tento datový formát umí a jak jej používat?

V tomto článku se naučíme základy práce s formátem json. Budeme sledovat následující témata:

  • Co je formát JSON?
  • Jak vytvořit řetězce JSON?
  • Jednoduchý příklad dat JSON
  • Porovnání JSON s XML

Začněme!

Co je formát JSON?

JSON je jednoduchý textový způsob ukládání a komunikace strukturovaných dat. S jednoduchou syntaxí můžete snadno ukládat jak jednoduchá čísla a řetězce, tak pole, objekty, s použitím pouze textu. Můžete také propojit objekty a pole, což vám umožní vytvářet složité datové struktury.

Po vytvoření řetězce JSON jej lze snadno odeslat do jakékoli aplikace nebo počítače, protože se jedná pouze o text.

JSON má mnoho výhod:

  • Je kompaktní
  • Je čitelný pro člověka a snadno čitelný na počítači.
  • Lze jej snadno převést do programových formátů: číselné hodnoty, řetězce, booleovský formát, nulová hodnota, pole a asociativní pole.
  • Téměř všechny programovací jazyky mají funkce, které vám umožňují číst a vytvářet datový formát json.

Doslova JSON znamená JavaScript Object Notation. Jak bylo popsáno dříve, tento formát je založen na vytváření objektů, což je poněkud podobné asociativním polím v jiných programovacích jazycích.

Jaký je účel JSON?

Json se používá především k výměně dat mezi javascriptem a serverovou stranou (php). Jinými slovy, pro technologii ajax. To je velmi užitečné, když předáváte více proměnných nebo celá pole dat.

Jak to vypadá v příkladu:

  1. Uživatel klikne na miniaturní obrázky
  2. JavaScript zpracuje tuto událost a odešle požadavek ajax do skriptu PHP a předá ID obrázku.
  3. Na serveru php získá popis obrázku, název obrázku, adresu velkého obrázku a další informace z databáze. Po obdržení se převede do formátu JSON a odešle zpět na stránku uživatele.
  4. JavaScript přijme odpověď JSON, zpracuje data, vygeneruje html kód a zobrazí větší obrázek s popisem a dalšími informacemi.

Takto se obrázek zvětší, aniž by se stránka znovu načítala v prohlížeči. To je velmi výhodné, když potřebujeme přijmout částečná data nebo přenést malé množství informací na server.

Všem oblíbený jQuery má funkce getJSON() a parseJSON(), které vám pomohou pracovat s formátem prostřednictvím požadavků ajax.

Jak vytvořit řetězce JSON?


Níže jsou uvedena základní pravidla pro vytváření řetězců JSON:

  • Řetězec JSON obsahuje pole hodnot i objekt (asociativní pole s páry název/hodnota).
  • Pole musí být zabaleno do hranatých závorek, [ a ], může obsahovat seznam hodnot, které jsou odděleny čárkou.
  • Objekty ovinuté složenými okovy ( a ) také obsahují páry název/hodnota oddělené čárkou.
  • Páry název/hodnota se skládají z názvu pole (ve dvojitých uvozovkách) následovaného dvojtečkou (:) následovanou hodnotou daného pole.
  • Hodnoty v poli nebo objektu mohou být:
    • Číselné (celé nebo desetinné s tečkou)
    • Řetězce (zabalené do dvojitých uvozovek)
    • Boolean (pravda nebo nepravda)
    • Další pole (zabalené v hranatých závorkách [ a ])
    • Jiné předměty (zabalené do tvarovaných ramen ( a ))
    • Hodnota null (null)

Důležité! Pokud v hodnotách používáte dvojité uvozovky, uzavřete je zpětným lomítkem: \". Můžete také použít znaky s hexadecimálním kódováním, jako to děláte v jiných programovacích jazycích.

Jednoduchý příklad dat JSON

Následující příklad ukazuje, jak můžete uložit data do „košíku“ internetového obchodu pomocí formátu JSON:

( "orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail chráněný]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1), ( "productID": 56, "productName": "WonderWidget", "quantity": 3) ], "orderCompleted": true)

Pojďme si tato data rozebrat kousek po kousku:

  1. Na začátku a na konci použijeme složené mašle ( a ), které dávají jasně najevo, že se jedná o předmět.
  2. Uvnitř objektu máme několik párů jméno/hodnota:
  3. "ID objednávky": 12345- pole s názvem orderId a hodnotou 12345
  4. "shopperName": "John Smith"- pole s názvem shopperName a hodnota John Smith
  5. " shopperEmail": "[e-mail chráněný] příklad.com"- stejně jako v předchozím poli je zde uložen email kupujícího.
  6. "obsah": [...]- pole s názvem content, jehož hodnota je pole.
  7. "objednávka dokončena": pravda- pole s názvem orderCompleted, jehož hodnota je true
  8. Uvnitř pole obsahu máme dva objekty, které zobrazují obsah košíku. Každý objekt produktu má tři vlastnosti: productID, productName, množství.

A konečně, protože JSON je identický s objekty v JavaScriptu, můžete si snadno vzít tento příklad a vytvořit z něj objekt JavaScript:

Porovnání JSON s XML

JSON si ve většině případů představíte jako alternativu k XML – alespoň v rámci webových aplikací. Koncept Ajax původně využíval ke komunikaci mezi serverem a prohlížečem XML, ale v posledních letech se JSON stal populárnějším pro předávání ajaxových dat.

Zatímco XML je vyzkoušená a testovaná technologie, kterou používá mnoho aplikací, výhodou formátu JSON je, že je kompaktnější a snadněji se zapisuje a čte.

Zde je výše uvedený příklad JSON, pouze přepsaný ve formátu XML:

orderID 12345 shopperName John Smith shopperEmail [email protected] contents productID 34 productName SuperWidget quantity 1 productID 56 productName WonderWidget quantity 3 objednávka Dokončena skutečný

Jak vidíte, je několikrát delší než JSON. Ve skutečnosti má tento příklad 1128 znaků, zatímco verze JSON má pouze 323 znaků. Také XML verze je hůře čitelná.

Přirozeně nelze soudit pouze podle jednoho příkladu, ale i malá množství informací zabírají ve formátu JSON méně místa než v XML.

Jak pracovat s JSON přes PHP a JS?

Dostáváme se tedy k tomu nejzajímavějšímu – praktické stránce formátu JSON. Nejprve vzdáme hold JavaScriptu a pak uvidíme, jak můžeme manipulovat s JSON prostřednictvím PHP.

Vytváření a čtení formátu JSON pomocí JavaScriptu


Přestože je formát JSON jednoduchý, při vývoji webových aplikací je obtížné jej napsat ručně. Navíc často musíte převést řetězce JSON na proměnné a poté je použít ve svém kódu.

Naštěstí mnoho programovacích jazyků poskytuje nástroje pro práci s řetězci JSON. Hlavní myšlenka, která:

Stvořeníjson řetězce, začnete s proměnnými obsahujícími nějaké hodnoty, pak je předáte funkcí, která převede data na řetězec JSON.

Čteníjson řetězce, začnete s řetězcem JSON obsahujícím určitá data, proveďte řetězec pomocí funkce, která vytvoří proměnné obsahující data.

Podívejme se, jak se to dělá v JavaScriptu.

Vytvořte řetězec JSON z proměnné JavaScriptu

JavaScript má vestavěnou metodu JSON.stringify() , která přebírá proměnnou javascriptu a vrací řetězec json představující obsah proměnné. Použijme například dříve vytvořený objekt, převeďte jej na řetězec JSON.

Zde je to, co se zobrazí na obrazovce:

("orderID":12345,"shopperName":"John Smith","shopperEmail":" [e-mail chráněný]", "contents":[("productID":34,"productName":"SuperWidget","quantity":1), ("productID":56,"productName":"WonderWidget","quantity":3) ], "objednávka dokončena":true)

Všimněte si, že JSON.stringify() vypisuje řetězce JSON bez mezer. Obtížně čitelné, ale kompaktnější, což je důležité při přenosu dat.

Vytvořte proměnnou JavaScriptu z řetězce JSON

Existuje několik způsobů, jak analyzovat řetězce JSON, nejpřijatelnější a nejbezpečnější je použití metody JSON.parse(). Vezme řetězec JSON a vrátí objekt nebo pole JavaScriptu obsahující data JSON. Zde je příklad:

Zde jsme vytvořili proměnnou jsonString, která obsahuje řetězec JSON z dříve poskytnutých příkladů. Poté jsme tento řádek prošli přes JSON.parse(), abychom vytvořili objekt obsahující data JSON, která jsou uložena v proměnné košíku. Nakonec zkontrolujeme přítomnost dat a zobrazíme některé informace pomocí modálního výstražného okna.

Zobrazí se následující informace:

Ve skutečné webové aplikaci by váš kód JavaScript měl převzít řetězec JSON jako odpověď ze serveru (po odeslání požadavku AJAX), poté řetězec analyzovat a zobrazit uživateli obsah košíku.

Vytváření a čtení formátu JSON pomocí PHP


PHP, stejně jako JavaScript, má funkce, které umožňují převádět proměnné do formátu JSON a naopak. Pojďme se na ně podívat.

Vytvoření řetězce JSON z proměnné PHP

json_encode() vezme proměnnou PHP a vrátí řetězec JSON představující data proměnné. Zde je náš příklad "košíku" napsaný v PHP:

12345, "shopperName" => "John Smith", "shopperEmail" => " [e-mail chráněný]", "contents" => array(array("productID" => 34, "productName" => "SuperWidget", "quantity" => 1), array("productID" => 56, "productName" => " WonderWidget", "quantity" => 3)), "orderCompleted" => true); echo json_encode($cart); ?>

Tento kód poskytuje přesně stejný výsledek jako příklad JavaScriptu – platný řetězec JSON představující obsah proměnných:

("orderID":12345,"shopperName":"John Smith","shopperEmail":" [e-mail chráněný]","contents":[("productID":34,"productName":"SuperWidget","quantity":1),("productID":56,"productName":"WonderWidget","quantity":3) ],"orderCompleted":true)

Ve skutečnosti by váš PHP skript měl odeslat řetězec JSON jako odpověď na požadavek AJAX, kde JavaScript použije JSON.parse() k přeměně řetězce na proměnné.

Ve funkci json_encode() můžete zadat další parametry, které vám umožní převést některé znaky na hex.

Vytvoření proměnné PHP z řetězce JSON

Podobně jako výše existuje funkce json_decode(), která vám umožňuje dekódovat řetězce JSON a vkládat obsah do proměnných.

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

Stejně jako u JavaScriptu tento kód vypíše následující:

[e-mail chráněný] Wonder Widget

Ve výchozím nastavení vrací json_decode() objekty JSON jako objekty PHP. Jako obvyklou syntaxi používáme -> pro přístup k vlastnostem objektu.

Pokud později budete chtít data použít jako asociativní pole, stačí předat true jako druhý parametr funkci json_decode(). Zde je příklad:

$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] ."
";

Výsledkem je stejný výstup:

[e-mail chráněný] Wonder Widget

Do funkce json_decode () lze také předat další argumenty, které určí zpracování velkých čísel a rekurzi.

Na závěr o formátu JSON

Pokud se chystáte vytvořit webovou aplikaci pomocí technologie Ajax, rozhodně použijte pro výměnu dat mezi serverem a prohlížečem formát JSON.