我正在学习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"])
中的多维数组。
我确信这很简单,我很想念......
答案 0 :(得分:1)
如果JSON:decode
的返回值是一个合理的lua表,那么你需要的只是
print(JSON_file["book"][1]["title"])
可以更好地写成
print(JSON_file.book[1].title)
如果您来自C ++背景 - 请注意 - lua数组是基于1而不是基于0。 (不能计算绊倒我的次数。)