我想知道如何将表转换为字符串,然后再转回。
我想使用套接字模块发送表,但我必须通过字符串来完成。
我想这样做:
a = { 1, 2, 3 } -- create table
b = tostring(a) -- convert table to string
c = totable(b) -- convert string back to table
答案 0 :(得分:4)
有很多现有的Lua库。 见http://lua-users.org/wiki/TableSerialization 表序列化函数非常简单,编写自己的函数是一个很好的学习练习。
PS。刚刚检查过...... love2D API已经有了一个表序列化库。
答案 1 :(得分:2)
正如其他人所说,你不能轻易地序列化所有内容,但可以序列化很多东西。对于这种IPC,JSON是当前的通用语,我强烈推荐它,特别是因为你可以相当安全地与其他语言交换。
Lua有several implementations,但查看this one especially,因为它运行良好,非常稳定,并且在github上有很好的维护活动。示例代码:
json = require("json")
encoded = json.encode(someVar)
decoded = json.decode(someStr)