阅读已解码的JSON LUA表格

我正在学习LUA,作为我正在开发的软件的组件,并且主要将用于解析JSON文件。

我正在使用http://regex.info/blog/lua/json进行解析,我可以使用 io.input将文件读入并使用 JSON:decode(io.read(“* all”))将其解析为本地lua_value;然后 JSON:encode_pretty(lua_value)将JSON验证回控制台。

我可以很好地提取简单顶级JSON值的键;

` {“book”:“LUA For Dummies int”} `

其中print(JSON_file [“book”])将返回预期的LUA For Dummies

当涉及读取嵌套键时:

` {“book”:          {“title”:“LUA For Dummies”}      } `

我无法从LUA文档或JSON解析器的源代码中确定嵌套值(这里是“title”)如何读取到LUA表中。从naive的C ++直觉上,我正在寻找像print(JSON_file [“book”,“title”])这样的多维数组。

我肯定是错过了简单的东西..

点赞
用户221955
用户221955

如果JSON:decode返回一个合理的lua table,那么你所需要做的就是

print(JSON_file["book"][1]["title"])

这也可以写得更好:

print(JSON_file.book[1].title)

如果你是从C++背景过来的,要注意了——lua数组以1开始,而不是0。(出现错误的次数太多了,没法计数。)

2014-06-09 04:17:06