如果存在密钥,如何检查 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 值。