Lua中表的字符串

Tra*_*rae 4 lua

我使用LuaSocket和http.request来调用生成Lua表并将其输出到浏览器的远程PHP脚本.

当我将http.request响应存储在变量中时,它是一个字符串,这使得该表在我的Lua代码中不可用.

例如:

eventData = http.request("http://www.example.com/events.php")
print( eventData )

--print outputs this "string", that is really a Lua table that PHP generated
months={
    'January',
    'February',
    'March',
    'April',
    'May',
    'June',
    'July',
    'August',
    'September',
    'October',
    'November',
    'December',
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我尝试拨打几个月[4],它会错误地"尝试索引全球'月'(零值)".如何将该字符串转换为可用的表?

谢谢!

Ada*_*dam 10

您可以使用loadstring来创建可以执行的lua块.

eventData = [[
months = {
    'January',
    'February',
    'March',
    'April',
    'May',
    'June',
    'July',
    'August',
    'September',
    'October',
    'November',
    'December',
}
]]

loadstring(eventData)()
if months then
    print(table.concat(months, ", "))
end
Run Code Online (Sandbox Code Playgroud)

  • 从技术上说,你应该使用`断言(加载链(EVENTDATA))()`传播中所提供的代码的任何语法错误(而不是仅仅弹出一个莫名其妙的"试图调用一个零值"的错误). (3认同)