lua 表格中存在多个“行”的帮助

我通过 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}'

我试过几种对 pairs 和 ipairs 的迭代,但似乎无法让代码区分行。

这个代码给我第一行数据:

local data = json:decode(result.data.http.get) --仅为例子,以说明数据如何转换为 lua 表格
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

我想能够逐行解析这一行,甚至不需要按照特定的返回顺序,我只需要数据,就可以处理它。

点赞
用户7504558
用户7504558

首先,使用 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
2019-07-03 18:59:24