Lua 中的表内元素

我有一个使用 Lua 的表,其中有一个变量,但我无法通过变量名访问它。我能够使用 json.prettify(_id) 查看表中的内容。我只想访问这个表中的 id,但由于它的命名方式,我无法访问 _id 中的内容。我尝试了`

_id[1]

但是它返回值是 nil。 `

_id.$oid

但是这会导致运行时错误。

打印响应:

_id = {
 "$oid": "597015b757203b04d6941d45" 
}

有趣的是,#_id == 0

点赞
用户7026995
用户7026995

使用

tableName['variableName']

或者

tableName.variableName

注意:有时候不能同时使用两种形式,例如:

tableName['name with spaces'] -- 正常

tableNames.name with spaces -- 错误

我认为操作符 # 不能用于非索引的表格。

2017-07-23 08:17:01
用户7504558
用户7504558

你需要将json字符串解码为Lua表,并以任何方式获取其中的值:

local json = require("json")

local str = [[ { "$oid":"597015b757203b04d6941d45" } ]]

local t_res= json.decode(str)

-- 访问
print( t_res["$oid"] )
-- 或
local k,v = next(t_res)
print( v )
-- 或
for k, v in pairs(t_res) do
  print(v)
  break
end

PS:Lua的操作符“#”仅适用于带有非nil值的常规数组。

2017-07-23 09:12:43
用户4701847
用户4701847

为了克服包含'$'符号的变量名称的限制,在表格中获取变量的正确方法是使用:

_id['$oid']

这个方法是有效的。

使用_id.$oid会导致运行时错误。

2017-07-25 19:19:14