<json> nebo ["xml"]

posted 16.04.2014

Stahuju-li data v JSONu, budu už od začátku obezřetnější a zároveň flexibilnější ohledně toho, co obsahuje. Dostanu-li ty stejné v XML, intuitivně budu spoléhat na pravidelnost a dodržování struktury. XML zvolím jako formát pro import produktů do e-shopu. JSON zvolím jako nosič pro data v RESTovém API. Proč?

Když se objevily dokumentové databáze, většina z nich volila JSON pro reprezentaci. Jednotlivé dokumenty mohly být v zásadě každý jiný a začalo se předpokládat, že aplikace bude adaptivní a začne využívat položky, které ve výsledku jsou, a poradí si s těmi, které tam chybí. Nebyl důvod využívat prostředků, které mělo XML jako je DTD nebo XSD, zápis v Javascriptu byl stručnější a (možná) čitelnější. Dotazování neprobíhá nad daty v JSONu, ten se používá jen jako reprezentace výsledku, který se využije a zpracuje většinou celý. Třeba jako u RESTového API - nechám vrátit jen data, které potřebuji, řádově jich bude relativně málo a skončí skoro všechny někde na stránce.

Tady, a ne jinde, je pro mě využití JSONu. Proto mi hlava nebere, proč se vymýšlí opičárny jako JSON Schema, JSONiq, JSON Path apod. Většina z nich je jen reimplementace existujícího konceptu z XML, který je už dávno vyzkoušený a implementovaný pro každý běžný i obskurní programovací jazyk. XML nemusí hned znamenat těžkopádný nástroj, dá se začít s málem a pokud bude potřeba definovat kontrakt pro protistranu, agilně se jen přidá potřebné schéma.