Funkcie pre manipuláciu s dátami JSON umožňujú načítať a uložiť text v JSON formáte, vytvárať, čítať, zapisovať a vymazávať JSON objekty. Mená funkcií sú tvorené prefixom %JSON_.

Pri vložení neplatnej hodnoty (napr. %JSON_ObjectSetValue), hodnota je interpretovaná v JSON ako null. Pri čítaní null z JSON (napr. %JSON_ObjectGetValue), táto je interpretovaná ako neplatná hodnota.

Každý handle na objekt a pole je nutné zmazať volaním funkcie %JSON_FreeObjectHandle alebo %JSON_FreeArrayHandle.

Odstránením vnoreného poľa alebo objektu (napr. %JSON_ArrayRemoveItem) nezaniká jeho handle, objekt na ktorý ukazuje je stále validný. Rovnako handle na objekt alebo pole zostáva platným aj keď bol zmazaný rodičovský objekt.

Príklad:

 INT _obj
 INT _clientInfo
 TEXT _d2version
 
 _obj := %JSON_ObjectFromString(ModuleInfo)
 _clientInfo := %JSON_ObjectGetObject(_obj, "client_data")

 %JSON_FreeObjectHandle(_obj) ; uvolnim handle na _obj, _clientInfo je stale platny handle

 _d2version := %JSON_ObjectGetValue(_clientInfo, "d2000_version")
 
 LOG "D2000 version", _d2version PRIORITY _LOG_PRTY_INFO
 
 %JSON_FreeObjectHandle(_clientInfo) ; nakoniec musim uvolnit handle aj na _clientInfo

Načíta sa systémová premenná ModuleInfo do JSON objektu, vyberie sa hodnota z objektu a výsledok sa zapíše do monitorovacej databázy.


Funkcie pre prácu s JSON formátom:


Rozšírená implementácia funkcií v ESL