JSON Data Formats
Array Item
Pick one object from a JSON array.
json arrays
Decoded JSON arrays use Lua's normal one-based indexes after they become Lua tables.
Array Item
array_item.lua
Replay: real traced execution (multi-file project)
local index = 2
local text = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'
local name = require("cjson").decode(text)[index].name
local score = require("cjson").decode(text)[index].score
print("index=" .. index)
print("name=" .. name)
print("score=" .. score)
local index = 1
local text = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'
local name = require("cjson").decode(text)[index].name
local score = require("cjson").decode(text)[index].score
print("index=" .. index)
print("name=" .. name)
print("score=" .. score)
local index = 3
local text = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'
local name = require("cjson").decode(text)[index].name
local score = require("cjson").decode(text)[index].score
print("index=" .. index)
print("name=" .. name)
print("score=" .. score)
index ← 2, text ← [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]
1local index→ 2 = 2 --@index=1, 32local text→ [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}] = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'3local name→ Linus = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].name4local score→ 85 = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].score5print("index=" .. index2)6print("name=" .. nameLinus)7print("score=" .. score85)outputindex=2 name=Linus score=85
index ← 1, text ← [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]
1local index→ 1 = 12local text→ [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}] = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'3local name→ Ada = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].name4local score→ 90 = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].score5print("index=" .. index1)6print("name=" .. nameAda)7print("score=" .. score90)outputindex=1 name=Ada score=90
index ← 3, text ← [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]
1local index→ 3 = 32local text→ [{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}] = '[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}]'3local name→ Grace = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].name4local score→ 95 = require("cjson").decode(text[{"name":"Ada","score":90},{"name":"Linus","score":85},{"name":"Grace","score":95}])[index].score5print("index=" .. index3)6print("name=" .. nameGrace)7print("score=" .. score95)outputindex=3 name=Grace score=95