/
LUA 3rd party libraries
LUA 3rd party libraries
JSON related
Whenever something is related to JSON, the library json4lua provided by Egor-Skriptunoff has turned out to be helpful. It converts JSON data to a LUA object and vice versa. It can be simply used within a workspace by adding one file to the ScriptFiles folder and by adding one require statement:
Add to the ScriptFiles folder.
Insert the statement
json = require('json')
e.g. into the file nxaDefinitions.lua.Use the functions
json.encode(
) orjson.decode()
.
The library works with LUA 5.1 or 5.4. Example code to study (can be tried in Execute Script dialog in Core Studio):
encodedJsonString = '{ \
a:5, \
b:"asdf", \
c:null, \
"d d":123456789000.234567890123456789, \
anObject:{f:"inner value", g:{}, h:"alt notation"}, \
anArray:[111, 2222, null, {x:99}, [101,202,303]] \
}'
data = json.decode(encodedJsonString)
nxa.LogInfo(data["doesNotExist"]) -- the key does not exist in json string
nxa.LogInfo(data["doesNotExist"] == nil) -- is true
nxa.LogInfo(data["doesNotExist"] == json.null) -- if false
nxa.LogInfo("")
nxa.LogInfo(data["a"])
nxa.LogInfo(data["b"])
nxa.LogInfo(data["c"] == nil) -- the key exists, but avoid this to check if the value is null
nxa.LogInfo(data["c"] == json.null) -- use this instead if you need to compare null values
nxa.LogInfo(data["d d"])
nxa.LogInfo("")
nxa.LogInfo(data["anObject"]["f"])
nxa.LogInfo(data["anObject"]["f"] == json.empty) -- if false
nxa.LogInfo(data["anObject"]["g"] == json.empty) -- if true
nxa.LogInfo("")
nxa.LogInfo(data["anArray"][1])
nxa.LogInfo(data["anArray"][2])
nxa.LogInfo(data["anArray"][3] == json.null)
nxa.LogInfo(data["anArray"][4]['x'])
nxa.LogInfo(data["anArray"][5][2])
nxa.LogInfo("")
nxa.LogInfo(data.anObject.h) -- alternative notation
nxa.LogInfo("")
nxa.LogInfo(json.encode(data))
nxa.LogInfo("")
nxa.LogInfo(json.encode({x = {json.null, {y = "inner deep value"}, json.null}})) -- use json.null if a json value must be 'null'. 'nil' will not work!
, multiple selections available,
Related content
Additional information on LUA implementation
Additional information on LUA implementation
More like this
xcon.SendText (HTTP POST with JSON string and MIME type provided)
xcon.SendText (HTTP POST with JSON string and MIME type provided)
More like this
xcon.SendText (HTTP POST with JSON string)
xcon.SendText (HTTP POST with JSON string)
More like this
nxa.ExecuteXCommand
nxa.ExecuteXCommand
More like this
nxa.ExecuteDelayedScript
nxa.ExecuteDelayedScript
More like this
nxa.AddVar
nxa.AddVar
More like this