检查Lua表中是否存在值

时间:2015-05-16 19:32:29

标签: json lua

我在带有NodeMCU固件的ESP8266 Wifi模块上运行Lua。我的应用程序正在侦听TCP端口以获取JSON请求。当我收到请求时,我使用以下方法解析它:

jsonRequest = json.decode(request)

然后我可以通过以下方式访问所需的值:

jsonRequest.object.state

一切正常,直到我发送无效的JSON(没有#34;对象")。当发生这种情况时,我收到此错误: Lua API(尝试索引零值) ,我的程序会在执行时停止。

我的问题:我想在访问之前检查我的表是否包含该密钥,但我找不到办法。

我可以使用 功能执行此操作并循环显示所有键并检查是否有正确的键,但这需要批次因为我的JSON中有多个嵌套对象。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

要检查表格jsonRequest是否包含密钥"object",请使用:

if jsonRequest.object ~= nil then

如果表中存储的值不是布尔值false,您还可以使用:

if jsonRequest.object then