Když to necháte na nějakém obecném sráči (pokaždé jiném), nemůžete se divit, že vám z toho padají hovadiny. Každá entita má mít schopnost se sama serializovat a deserializovat.
Řekl kdo? Musím psát speciální deserializační funkci pro každou variantu datové struktury (NEbavím se o objektech) jenom protože proto?
A jaktože to v jiných formátech jde? Prostě mají uživatelsky definované typy a ty můžu použít třeba pro serializaci toho atomu - napíšu to jednou a bude mi to fungovat ve všech strukturách. To je špatně? Musím to psát stokrát podle toho, jestli se mi atom objeví v poli, objektu, jako standalone hodnota?
V JSONu by to šlo taky - a velice snadno. Stačil by jeden typ navíc, který by vypadal třeba takhle:
{{type: "atom", value: "myAtom"}}
- důležité je, že je odlišený od objektu, aby byly vyloučeny kolize s objektem
{type: "atom", someRandomGarbage: "blablabla"}
který se v principu v datech může objevit taky.
Ne, v JSONu to nejde, protože "webová specifika"...