JSON Data Formats
Nested Value
Read values inside a nested JSON object.
nested json
Nested JSON objects become nested Lua tables, so each field access moves one level deeper.
Nested Value
nested_value.lua
Replay: real traced execution (multi-file project)
local level = "info"
local text = '{"event":{"level":"' .. level .. '","code":200}}'
local parsedLevel = require("cjson").decode(text).event.level
local code = require("cjson").decode(text).event.code
print("level=" .. parsedLevel)
print("code=" .. code)
local level = "debug"
local text = '{"event":{"level":"' .. level .. '","code":200}}'
local parsedLevel = require("cjson").decode(text).event.level
local code = require("cjson").decode(text).event.code
print("level=" .. parsedLevel)
print("code=" .. code)
local level = "warn"
local text = '{"event":{"level":"' .. level .. '","code":200}}'
local parsedLevel = require("cjson").decode(text).event.level
local code = require("cjson").decode(text).event.code
print("level=" .. parsedLevel)
print("code=" .. code)
level ← info, text ← {"event":{"level":"info","code":200}}, parsedLevel ← info
1local level→ info = "info" --@level="debug", "warn"2local text→ {"event":{"level":"info","code":200}} = '{"event":{"level":"' .. levelinfo .. '","code":200}}'3local parsedLevel→ info = require("cjson").decode(text{"event":{"level":"info","code":200}}).event.level4local code→ 200 = require("cjson").decode(text{"event":{"level":"info","code":200}}).event.code5print("level=" .. parsedLevelinfo)6print("code=" .. code200)outputlevel=info code=200
level ← debug, text ← {"event":{"level":"debug","code":200}}, parsedLevel ← debug
1local level→ debug = "debug"2local text→ {"event":{"level":"debug","code":200}} = '{"event":{"level":"' .. leveldebug .. '","code":200}}'3local parsedLevel→ debug = require("cjson").decode(text{"event":{"level":"debug","code":200}}).event.level4local code→ 200 = require("cjson").decode(text{"event":{"level":"debug","code":200}}).event.code5print("level=" .. parsedLeveldebug)6print("code=" .. code200)outputlevel=debug code=200
level ← warn, text ← {"event":{"level":"warn","code":200}}, parsedLevel ← warn
1local level→ warn = "warn"2local text→ {"event":{"level":"warn","code":200}} = '{"event":{"level":"' .. levelwarn .. '","code":200}}'3local parsedLevel→ warn = require("cjson").decode(text{"event":{"level":"warn","code":200}}).event.level4local code→ 200 = require("cjson").decode(text{"event":{"level":"warn","code":200}}).event.code5print("level=" .. parsedLevelwarn)6print("code=" .. code200)outputlevel=warn code=200