JSON (aneb JavaScript Object Notation) je dnes asi nejvíce rozšířený způsob přenosu textových dat v prostředí webových (či dokonce internetových) aplikací.
V principu jde o mix javascriptích objektů a polí, ale s několika (záludnými) zjednodušeními.
Data ve formátu JSON mohou mít právě dvě – spolu navzájem velmi související – varianty:
V podstatě platí, že umíte-li v JavaScriptu napsat pole a objekt, umíte v JSONu napsat cokoliv.
Pole v JavaScriptu se přímou notací tvoří pomocí hranatých závorek..
..přičemž hodnotou může být prakticky cokoliv.
Objekty v JavaScriptu se přímou notací tvoří pomocí kudrnatých závorek..
..přičemž hodnotou může být opět prakticky cokoliv a klíčem pak pouze řetězec.
Povolenými hodnotami jsou následující:
true
;false
;null
.Důležitou vlastností zde tedy je, že povolené hodnoty do sebe můžeme díky polím a objektům libovolně zanořovat. Typická data v JSONu jsou tak na nejvyšší úrovni buď polem nebo objektem a mají velmi „košilatou“ stromovou strukturu.
Jako příklad si ukážeme jsoní data pro stromečkové zobrazení pomocí knihovny D3:
JSON celkem pochopitelně umožňuje nastrkat mezery a jiné bílé znaky, kam se vám zlíbí, pokud to nezmění význam dat, čehož se zhusta používá, pokud se mají na data dívat lidé, ale samozřejmě je k interpretaci dat nepotřebuje.
Typická (nejen) po síti posílaná jsoní data většinou neobsahují přebytečné bílé znaky žádné, takže ručně číst se nedají prakticky vůbec. Strojům je to ale samozřejmě jedno.
Stejný příklad jako dříve, nyní ale beze všech přebytečných bílých znaků:
Jak jsem už předesílal, JSON je vybraná podmnožina JavaScriptu, takže při zápisu dat pomocí něj je třeba dávat pozor především na následující dva hlavní rozdíly:
JavaScript přitom používá u řetězců i uvozovky jednoduché (apostrofy) a kromě několika starých verzí IE povoluje i přebývající koncovou čárku u polí a objektů.