我有一个以字符串形式呈现的表格数据,以下是示例:
{"engName1":"HOLDER","validDurPeriod":3,"engName2":"INFORMATION","appStatus":2,"stayExpDate":"01/10/2012","engName3":"","appExpDate":"12/04/2010"}
我应该如何把它转换成一个合适的表类型变量,以便可以访问键。我是Lua的新手,不知道是否有任何现有的方法可以实现。
我有一个以字符串形式呈现的表格数据,以下是示例:
{"engName1":"HOLDER","validDurPeriod":3,"engName2":"INFORMATION","appStatus":2,"stayExpDate":"01/10/2012","engName3":"","appExpDate":"12/04/2010"}
我应该如何把它转换成一个合适的表类型变量,以便可以访问键。我是Lua的新手,不知道是否有任何现有的方法可以实现。
local json = require ("dkjson")
local str = [[
{
"numbers": [ 2, 3, -20.23e+2, -4 ],
"currency": "\u20AC"
}
]]
local obj, pos, err = json.decode (str, 1, nil)
if err then
print ("Error:", err)
else
print ("currency", obj.currency)
for i = 1,#obj.numbers do
print (i, obj.numbers[i])
end
end
输出:
currency €
1 2
2 3
3 -2023
4 -4
require
是一个内置函数 http://www.lua.org/pil/8.1.html 所以一般情况下应该是存在的。 - Petr Abdulin尝试使用此代码作为起点
J=[[
{"engName1":"HOLDER","validDurPeriod":3,"engName2":"INFORMATION","appStatus":2,"stayExpDate":"01/10/2012","engName3":"","appExpDate":"12/04/2010"}
]]
J=J:gsub("}",",}")
L={}
for k,v in J:gmatch('"(.-)":(.-),') do
L[k]=v
print(k,v)
end
J=J:gsub('(".-"):(.-),','[%1]=%2,\n')
L=loadstring("return "..J)()
J
的定义与第一个一样。这就是你所说的吗?崩溃时显示了什么错误信息? - lhfJ
的最后一个组件没有以 ,
结尾,因此它不会在第二个解决方案中被处理。 - Egor Skriptunoff