JSON Data Formats
Decode Field
Read named fields from a JSON object string.
decode fields
Decode JSON text, then copy the needed fields into scalar variables for later logic.
Decode Field
decode_field.lua
Replay: real traced execution (multi-file project)
local score = 90
local text = '{"name":"Ada","score":' .. score .. '}'
local name = require("cjson").decode(text).name
local parsedScore = require("cjson").decode(text).score
local passed = parsedScore >= 80
print("name=" .. name)
print("score=" .. parsedScore)
print("passed=" .. tostring(passed))
local score = 75
local text = '{"name":"Ada","score":' .. score .. '}'
local name = require("cjson").decode(text).name
local parsedScore = require("cjson").decode(text).score
local passed = parsedScore >= 80
print("name=" .. name)
print("score=" .. parsedScore)
print("passed=" .. tostring(passed))
local score = 100
local text = '{"name":"Ada","score":' .. score .. '}'
local name = require("cjson").decode(text).name
local parsedScore = require("cjson").decode(text).score
local passed = parsedScore >= 80
print("name=" .. name)
print("score=" .. parsedScore)
print("passed=" .. tostring(passed))
score ← 90, text ← {"name":"Ada","score":90}, name ← Ada, parsedScore ← 90
1local score→ 90 = 90 --@score=75, 1002local text→ {"name":"Ada","score":90} = '{"name":"Ada","score":' .. score90 .. '}'3local name→ Ada = require("cjson").decode(text{"name":"Ada","score":90}).name4local parsedScore→ 90 = require("cjson").decode(text{"name":"Ada","score":90}).score5local passed→ true = parsedScore90 >= 806print("name=" .. nameAda)7print("score=" .. parsedScore90)8print("passed=" .. tostring(passedtrue))outputname=Ada score=90 passed=true
score ← 75, text ← {"name":"Ada","score":75}, name ← Ada, parsedScore ← 75
1local score→ 75 = 752local text→ {"name":"Ada","score":75} = '{"name":"Ada","score":' .. score75 .. '}'3local name→ Ada = require("cjson").decode(text{"name":"Ada","score":75}).name4local parsedScore→ 75 = require("cjson").decode(text{"name":"Ada","score":75}).score5local passed→ false = parsedScore75 >= 806print("name=" .. nameAda)7print("score=" .. parsedScore75)8print("passed=" .. tostring(passedfalse))outputname=Ada score=75 passed=false
score ← 100, text ← {"name":"Ada","score":100}, name ← Ada, parsedScore ← 100
1local score→ 100 = 1002local text→ {"name":"Ada","score":100} = '{"name":"Ada","score":' .. score100 .. '}'3local name→ Ada = require("cjson").decode(text{"name":"Ada","score":100}).name4local parsedScore→ 100 = require("cjson").decode(text{"name":"Ada","score":100}).score5local passed→ true = parsedScore100 >= 806print("name=" .. nameAda)7print("score=" .. parsedScore100)8print("passed=" .. tostring(passedtrue))outputname=Ada score=100 passed=true