读取已解码的JSON LUA表

时间:2014-06-09 04:08:31

标签: c++ json lua

我正在学习LUA作为我正在使用的软件中的一个组件,主要是它将解析JSON文件。

我正在使用http://regex.info/blog/lua/json解析,我可以io.input一个文件并用JSON:decode(io.read("*all"))将其解析为local 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表。 从naiive C++直觉来看,我正在寻找类似于print(JSON_file["book","title"])中的多维数组。

我确信这很简单,我很想念......

1 个答案:

答案 0 :(得分:1)

如果JSON:decode的返回值是一个合理的lua表,那么你需要的只是

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

可以更好地写成

print(JSON_file.book[1].title)

如果您来自C ++背景 - 请注意 - lua数组是基于1而不是基于0。 (不能计算绊倒我的次数。)