将表转换为字符串,然后再返回

时间:2016-09-27 23:53:15

标签: serialization lua lua-table

我想知道如何将表转换为字符串,然后再转回。

我想使用套接字模块发送表,但我必须通过字符串来完成。

我想这样做:

a = { 1, 2, 3 } -- create table
b = tostring(a) -- convert table to string
c = totable(b) -- convert string back to table

2 个答案:

答案 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)