如果存在密钥,如何检查 lua-table?
How to check a lua-table if a key is present?
我每分钟都会通过请求从网上商店检索以下数据。
{
['action'] = 'all',
['orders'] = { ['order'] = { [1] = { ['locationId'] = 1,
['id'] = 93,
['orderNumber'] = '3200'
}
}
},
['status'] = 'success'
}
从这个table我需要我用代码读取的身份证号码:
IdNummer = Table.orders.order[1].id;
如果有订单,这有效
如果没有订单准备好,我将收到以下[=29=]:
{
['action'] = 'all',
['orders'] = { ['order'] = {} },
['status'] = 'success'
}
由于 "id" 不存在,我收到错误:尝试索引一个 nil 值(字段'?')
如何在不出现错误的情况下检查 "id" 是否存在?
您应该先检查条目 Table.orders.order[1]
是否存在,然后再尝试访问它的 id
字段。
在 lua 中,未分配的字段具有 nil
值。所以你可以这样做:
local orders = Table.orders.order
local IdNummer = nil
if orders[1] ~= nil then
IdNummer = orders[1].id;
end
注意,在此示例中,如果索引不存在,IdNummer
将具有 nil 值。
我每分钟都会通过请求从网上商店检索以下数据。
{
['action'] = 'all',
['orders'] = { ['order'] = { [1] = { ['locationId'] = 1,
['id'] = 93,
['orderNumber'] = '3200'
}
}
},
['status'] = 'success'
}
从这个table我需要我用代码读取的身份证号码:
IdNummer = Table.orders.order[1].id;
如果有订单,这有效
如果没有订单准备好,我将收到以下[=29=]:
{
['action'] = 'all',
['orders'] = { ['order'] = {} },
['status'] = 'success'
}
由于 "id" 不存在,我收到错误:尝试索引一个 nil 值(字段'?') 如何在不出现错误的情况下检查 "id" 是否存在?
您应该先检查条目 Table.orders.order[1]
是否存在,然后再尝试访问它的 id
字段。
在 lua 中,未分配的字段具有 nil
值。所以你可以这样做:
local orders = Table.orders.order
local IdNummer = nil
if orders[1] ~= nil then
IdNummer = orders[1].id;
end
注意,在此示例中,如果索引不存在,IdNummer
将具有 nil 值。