gpt4 book ai didi

string - 如何在不使用 load() 或 loadstring() 的情况下将表格式字符串转换为表?

转载 作者:行者123 更新时间:2023-12-02 08:08:14 25 4
gpt4 key购买 nike

另一个问题( String to Table in Lua )询问如何将格式化为表格的字符串转换为字符串,给出的答案是使用 loadstringload 将字符串转换为 block 然后执行。

我还有一个程序,可以使用 http.request 下载格式类似于 lua 表的文件,就像另一个问题一样:

yourTable = http.request("http://www.somesite.com/table.txt")
print(yourTable)

--yourTable is a string that is formatted like a lua table, but not a table:
a={
b = {
c = 1,
d = {
e = {
},
},
},
}

functionThatExpectsATable(yourTable) --throws error because yourTable is a string

虽然我可以使用 loadloadstring 来获取我想要的表,但这是一个潜在的安全漏洞,因为我的程序在设计上允许用户输入任何内容从中加载表数据的 URL。如果它们指向 lua 代码而不是 lua 格式的表,那么该代码就会被执行。

如何将“表格格式字符串”转换为表格而不执行它?

最佳答案

这里是 Penlight 的示例实现图书馆:

https://github.com/stevedonovan/Penlight/blob/master/lua/pl/pretty.lua

查看pretty.read函数

关于string - 如何在不使用 load() 或 loadstring() 的情况下将表格式字符串转换为表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com