所以我有一张使用Lua的表,其中有一个变量,但由于其名称,我无法弄清楚如何到达它。我能够使用json.prettify( _id )
来查看表格中的内容。我想要的只是这张表中的id
,但由于它的命名方式我似乎无法获得_id
内的内容,我尝试了两个1} p>
_id[1]
但是== nil
_id.$oid
但这给了我一个运行时错误
打印回复:_id = {
"$oid":"597015b757203b04d6941d45"
}
#_id == 0
答案 0 :(得分:3)
使用
tableName[ 'variableName' ]
或
tableName.variableName
注意:有时您不能同时使用这两种形式:
tableName[ 'name with spaces' ] -- ok
tableNames.name with spaces -- error
我认为operator #
不能与非索引表一起使用。
答案 1 :(得分:2)
您需要将json字符串解码为Lua表并以任何方式获取值:
local json = require("json")
local str = [[ { "$oid":"597015b757203b04d6941d45" } ]]
local t_res= json.decode(str)
-- access
print( t_res["$oid"] )
-- or
local k,v = next(t_res)
print( v )
-- or
for k, v in pairs(t_res) do
print(v)
break
end
PS:Lua运算符#仅适用于常规数组,具有非零值。
答案 2 :(得分:0)
为了克服这个变量的名称包括' $'符号在表中获取变量的正确方法是使用:
_id [' $ oid'],这很有用。
_id。$ oid发出运行时错误。