我正在通过json从外部源获取结果,并使用json库将其转换为表。结果可能是多行,这是我很难弄清楚的。我正在使用以lua为后端的软件平台。我从这里得到了Jeffrey Friedl的json库:JSON Decode
从我正在使用的平台中包含的json:decode库返回的表数据示例: '{“ THE_TYPE”:“ M”,“ P_TYPE”:“ L”,“ CODESET_DESCRIPTION”:“ X”,“ CODESET_ID”:356,“ ErrorMessage”:“”,“ S_AMOUNT”:2562.5,“ T_AMOUNT”:4200 },{“ THE_TYPE”:“ M”,“ P_TYPE”:“ A”,“ CODESET_DESCRIPTION”:“所有代码”,“ CODESET_ID”:359,“ ErrorMessage”:“”,“ S_AMOUNT”:0,“ T_AMOUNT” :2500}'
我尝试了成对和ipair的多次迭代,但是似乎无法让我的代码区分行。
这给了我第一行数据:
local data = json:decode(result.data.http.get) --example only to clarify how data is converted into lua table
for k, v in pairs(data) do
print(k, v)
end
我还尝试过通过行号调用表的各种方法,但是我对lua中的表的理解并不深刻。
for k, v in pairs(data[1]) do
或
for k, v in ipairs(data[1]) do
但是那些指出它的返回错误应该是一个表,但是没有nil
我希望能够逐行解析此代码,甚至不需要按特定的返回顺序进行解析,我只需要数据即可使用它。
答案 0 :(得分:0)
首先,将json.decode
与点一起使用,
其次,应检查json文本的有效性:
local s = [[
[
{
"THE_TYPE": "M",
"P_TYPE": "L",
"CODESET_DESCRIPTION": "X",
"CODESET_ID": 356,
"ErrorMessage": "",
"S_AMOUNT": 2562.5,
"T_AMOUNT": 4200
},
{
"THE_TYPE": "M",
"P_TYPE": "A",
"CODESET_DESCRIPTION": "All Codes",
"CODESET_ID": 359,
"ErrorMessage": "",
"S_AMOUNT": 0,
"T_AMOUNT": 2500
}
]
]]
local data = json.decode(s)
print(data)
for k, v in pairs(data[1]) do
print(k, v)
end