检查 Lua table 中是否存在值
Check if value exists in Lua table
我 运行 Lua 使用带有 NodeMCU 固件的 ESP8266 Wifi 模块。我的应用程序正在 TCP 端口上侦听 JSON 请求。当我收到请求时,我使用以下方式解析它:
jsonRequest = json.decode(request)
然后我可以通过以下方式访问所需的值:
jsonRequest.object.state
一切正常,直到我发送无效的 JSON(没有 "object")。发生这种情况时,我收到此错误: Lua API (attempt to index a nil value) 并且我的程序停止执行。
我的问题:我想在访问之前检查我的 table 是否包含该密钥,但我找不到方法。
我可以用 pairs 函数来完成它并遍历所有键并检查是否有正确的键,但这需要很多代码,因为我的 JSON.
中有多个嵌套对象
有什么想法吗?
要检查 table jsonRequest
是否包含密钥 "object"
,请使用:
if jsonRequest.object ~= nil then
如果table中存储的值不是布尔值false
,您还可以使用:
if jsonRequest.object then
我 运行 Lua 使用带有 NodeMCU 固件的 ESP8266 Wifi 模块。我的应用程序正在 TCP 端口上侦听 JSON 请求。当我收到请求时,我使用以下方式解析它:
jsonRequest = json.decode(request)
然后我可以通过以下方式访问所需的值:
jsonRequest.object.state
一切正常,直到我发送无效的 JSON(没有 "object")。发生这种情况时,我收到此错误: Lua API (attempt to index a nil value) 并且我的程序停止执行。
我的问题:我想在访问之前检查我的 table 是否包含该密钥,但我找不到方法。
我可以用 pairs 函数来完成它并遍历所有键并检查是否有正确的键,但这需要很多代码,因为我的 JSON.
中有多个嵌套对象有什么想法吗?
要检查 table jsonRequest
是否包含密钥 "object"
,请使用:
if jsonRequest.object ~= nil then
如果table中存储的值不是布尔值false
,您还可以使用:
if jsonRequest.object then