检查 Lua 表中的值是否存在

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

`` ` jsonRequest = json.decode(request)

`` `

然后,我可以使用以下方法访问所需的值:

`` ` jsonRequest.object.state

`` `

一切都很完美,直到我发送无效的JSON(没有“object”)为止。发生这种情况时,我会收到此错误:**_ Lua API(尝试索引空值)_ **,并且我的程序会停止执行。

我的问题:我希望在访问之前检查我的表格是否包含该键,但是我找不到方法来执行此操作。

我可以使用** pairs 函数,循环遍历所有键并检查是否存在正确的键,但是因为我在JSON中有多个嵌套对象,所以这将需要 大量**代码。

有什么建议吗?

点赞
用户1009479
用户1009479

要检查表格jsonRequest是否包含关键字"object",请使用:

if jsonRequest.object ~= nil then

如果在表格中存储的值不是布尔值false,也可以使用:

if jsonRequest.object then
2015-05-16 19:40:25