Zpět na blog

Přehled formátu sdílení dat JSON

Přehled formátu sdílení dat JSON

JavaScript Object Notation (JSON zkráceně a vyslovováno podobně jako jméno „Jason“), je typ formátu pro sdílení dat. Jak dokazuje jeho název, JSON pochází z JavaScript, ale není jediným vlastníkem kódu, který umožňuje jeho využití. Ve skutečnosti ho má k dispozici pro své použití mnoho dalších programovacích jazyků, včetně Ruby, PHP, Python, a Java.

Pokud existuje samostatně, soubor JSON využívá příponu .json, ale protože se jedná o formát, který je snadno přenositelný mezi webovým serverem a klientem (nebo prohlížečem), může být také definován jako formát .html. V tomto případě se může jednat buď o objekt přiřazený proměnné, nebo se může objevit jako řetězec JSON v uvozovkách.

JSON je dobrou alternativou k XML, protože je čitelnější a vyžaduje minimální formátování. Tento návod vás seznámí s daty, která lze ukládat do souborů JSON, a také s obecnou syntaxí a strukturou tohoto formátu.

Struktura & syntaxe

Objekt JSON je datový formát, který k reprezentaci párů klíč-hodnota využívá složené závorky. Při práci s JSON jej nejčastěji uvidíte vykreslený v souborech .json, ale v kontextu programu může existovat také jako řetězec nebo objekt JSON.

Zde je příklad toho, jak objekt JSON vypadá:

json object

Ačkoli se jedná o poměrně krátký příklad a objekty JSON mohou být mnohem delší, přesně ukazuje, jak je tento formát obvykle nastaven se dvěma složenými závorkami na každém konci, přičemž prostor mezi nimi vyplňují páry klíč-hodnota. Většina dat v JSON je zapouzdřena v položce JSON.

Páry klíč-hodnota jsou odděleny dvojtečkou (“klíč” : “hodnota”). Každý z těchto párů je od ostatních členů seznamu oddělen čárkou. To vede k tomu, že prostřední část formátování JSON vypadá následovně: “klíč” : “hodnota”, “klíč” : “hodnota”, “klíč” : “hodnota”. Ve výše uvedeném příkladu je například "name" : "Akshay" prvním párem klíč-hodnota.

Klíče v každém objektu musí být jedinečné, mohou být vykresleny jako jakýkoli platný řetězec uzavřený v dvojitých uvozovkách (“klíč”) a jsou vždy umístěny na levé straně od dvojtečky. I když jsou mezery v řetězcích klíčů povoleny (například v “first name”), představuje to z hlediska programování složitější přístup, pokud jde o přístup k nim. Z toho důvodu je běžně přijímanou programovací praxí nahrazovat mezery v klíčích podtržítky (“first_name”).

Hodnoty v JSON jsou umístěny vpravo od dvojtečky. Na své nejzákladnější úrovni musí jít o jeden ze 6 konkrétních datových typů:

  • Čísla
  • Objekty
  • Pole
  • Řetězce
  • Pravda nebo nepravda (Boolean)
  • Null

Další část se bude zabývat složitějšími datovými typy pole objektů JSON, přičemž každá hodnota předaná do JSON si zachová svou syntaxi. Jinými slovy, řetězce se budou i nadále zobrazovat v uvozovkách, zatímco číselné hodnoty nikoli.

Formát JSON se podle konvence obvykle zapisuje ve víceřádkovém formátu. Lze jej však naformátovat i do jednoho řádku:

single line json

Tento typ formátování je běžnější, pokud narazíte na řetězec JSON nebo v rámci jiného typu souboru. Při práci s obrovskými sadami dat činí zápis dvojteček a párů klíč-hodnota na samostatné řádky seznam čitelnějším pro lidské oko, protože JSON postrádá oddělovací pomoc mezer:

json object

Ačkoli se objekt JSON podobá JavaScriptu, je důležité mít na paměti, že se jedná o odlišné formáty. Zatímco JavaScript umožňuje použití funkcí, JSON nikoli. To, co činí JSON tak cenným, je jeho kompatibilita napříč jazyky, která umožňuje všem programovacím platformám jej interpretovat.

Dosud jsme se na formát JSON dívali pouze v jeho nejjednodušší podobě, ale může se vyvíjet hierarchicky a složitějším způsobem, pokud obsahuje vnořené objekty a pole. V další části se podíváme na pokročilejší JSON.

Využití složitých typů JSON

Kromě vnořených polí může JSON ukládat také vnořené objekty. Tyto objekty a pole budou přenášeny jako hodnoty klíčů a budou s klíči spojeny a vytvářet páry klíč-hodnota.

  • Tvorba vnořených objektů

V následujícím users.json obrázek souboru, pro každého ze čtyř uživatelů je předán vnořený objekt JSON („akshay“, „sam“, „Andrew“, „James“). Každý uživatel má své vlastní vnořené klíče („location“ a „username“):

nested

Zvýrazněná část představuje příklad prvního vnořeného objektu. Složené závorky jsou v příkladu výše použity k vytvoření vnořeného objektu JSON s odpovídajícím uživatelským jménem a údaji o pozici pro každého ze čtyř uživatelů. Při použití objektů se k rozlišení položek na základě konkrétního atributu uživatele používají čárky.

  • Vytváření vnořených polí

Pole v JavaScriptu předávaná jako hodnota lze také využít k vnoření dat v rámci formátu JSON. To se provádí pomocí [ ] (hranatých závorek) na konci typů polí, přičemž pole jsou strukturované seznamy obsahující jedinečné datové typy:

array

Ve zvýrazněné části výše uvedených příkladů jsou 2 profily na sociálních sítích a 2 odkazy na webové stránky uživatele Akshay’s použity v rámci pole vnořených informací, a to kvůli přítomnosti hranatých závorek. Zapojením vnořování tímto způsobem v JSON můžeme dosáhnout větší univerzálnosti při práci s hierarchickým a komplexním datovým obsahem.

  • Porovnání s XML

Extensible Markup Language (XML) poskytuje metodu pro ukládání dat, ke kterým mají přístup stroje i lidé. Podobně jako JSON může být XML použito mnoha programovacími jazyky. Na rozdíl od JSON obsahuje XML výrazně více textu, a proto je jeho sestavení složitější a časově náročnější. Zatímco standardní funkce dokáže analyzovat JSON, XML vyžaduje parser specifický pro XML. Navíc XML neumí využívat pole. Porovnejme stejná data formátovaná v XML a JSON:

xml vs json

XML vyžaduje výrazně více textu a zabírá více místa. Vyžaduje také koncové značky, zatímco JSON je mnohem kompaktnější a jednoduše uspořádaný. Ti, kteří znají HTML, si pravděpodobně všimnou podobnosti v používání značek v XML.

Před rozhodnutím, který formát použít, vždy pomůže vyhodnotit rozsah a potřeby projektu. JSON je méně upovídaný, úspornější a rychle se používá pro aplikace AJAX a další situace. Typ projektu pomůže objasnit nejvhodnější datové struktury, které by se měly použít.

Další informace o JSON

JSON is a všestranný a přirozený formát, který lze implementovat v různých programovacích jazycích. Úplný seznam podporovaných jazyků naleznete na stránce „Introducing JSON“. Informace o analýze a kompatibilitě navíc naleznete v „knihovně iQuery“.

Ve výsledku pravděpodobně nebudete psát čistý JSON příliš často. Místo toho jej budete stahovat z datových zdrojů nebo do JSON převádět jiné datové soubory. Pomocí open-source nástroje Mr. Data Converter, můžete převést data ve formátu CSV nebo data oddělená tabulátory z tabulkových procesorů do formátu JSON. S licencí Creative Commons na platformě utilities-online.info můžete převádět XML do JSON a naopak. Při použití automatizovaného softwaru dvakrát zkontrolujte výstupy, abyste eliminovali případnou duplicitu.

Můžete také použít JSONLint k ověření vašeho JSON a JFiddle k jeho vyhodnocení v kontextu vývoje webu při převodu jiných typů do formátu JSON.

Závěr

S rostoucí podporou API (včetně Twitter API) je JSON lehký datový formát, který podporuje jednoduchost při úpravách, ukládání a sdílení dat. Vzhledem k tomu, že nebudete generovat své vlastní .json soubory, ale spíše je přijímat z jiných zdrojů, je důležitější přemýšlet o tom, jak JSON použít ve vašich programech, než o jeho struktuře.

Zde jsou další zdroje z našeho blogu, které vám pomohou programovat v JavaScriptu:

Přejeme příjemné programování!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.