JSON Data Formats
Missing Field
Use a fallback when a JSON field is missing.
optional fields
A missing JSON property becomes `nil` in Lua, so `or` can provide a default value.
Missing Field
missing_field.lua
Replay: real traced execution (multi-file project)
local fallback = "unknown"
local text = '{"name":"Ada"}'
local name = require("cjson").decode(text).name
local city = require("cjson").decode(text).city or fallback
print("name=" .. name)
print("city=" .. city)
local fallback = "n/a"
local text = '{"name":"Ada"}'
local name = require("cjson").decode(text).name
local city = require("cjson").decode(text).city or fallback
print("name=" .. name)
print("city=" .. city)
local fallback = "missing"
local text = '{"name":"Ada"}'
local name = require("cjson").decode(text).name
local city = require("cjson").decode(text).city or fallback
print("name=" .. name)
print("city=" .. city)
fallback ← unknown, text ← {"name":"Ada"}, name ← Ada, city ← unknown
1local fallback→ unknown = "unknown" --@fallback="n/a", "missing"2local text→ {"name":"Ada"} = '{"name":"Ada"}'3local name→ Ada = require("cjson").decode(text{"name":"Ada"}).name4local city→ unknown = require("cjson").decode(text{"name":"Ada"}).city or fallbackunknown5print("name=" .. nameAda)6print("city=" .. cityunknown)outputname=Ada city=unknown
fallback ← n/a, text ← {"name":"Ada"}, name ← Ada, city ← n/a
1local fallback→ n/a = "n/a"2local text→ {"name":"Ada"} = '{"name":"Ada"}'3local name→ Ada = require("cjson").decode(text{"name":"Ada"}).name4local city→ n/a = require("cjson").decode(text{"name":"Ada"}).city or fallbackn/a5print("name=" .. nameAda)6print("city=" .. cityn/a)outputname=Ada city=n/a
fallback ← missing, text ← {"name":"Ada"}, name ← Ada, city ← missing
1local fallback→ missing = "missing"2local text→ {"name":"Ada"} = '{"name":"Ada"}'3local name→ Ada = require("cjson").decode(text{"name":"Ada"}).name4local city→ missing = require("cjson").decode(text{"name":"Ada"}).city or fallbackmissing5print("name=" .. nameAda)6print("city=" .. citymissing)outputname=Ada city=missing