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

Convert table to string, then back again

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

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

我想这样做:

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

正如其他人所说,您无法轻松地序列化所有内容,但是您可以 序列化很多内容。对于这种 IPC,JSON 是当前的 lingua franca,我强烈推荐它,尤其是因为您可以相当安全地与许多其他语言进行互换。

Lua 有 several implementations, but check out this one especially,因为它运行良好,非常稳定,并且在 github 上有很好的维护 activity。示例代码:

json = require("json")
encoded = json.encode(someVar)
decoded = json.decode(someStr)

有很多现有的 Lua 库。 参见 http://lua-users.org/wiki/TableSerialization Table 序列化函数非常简单,自己编写是一个很好的学习练习。

PS。刚刚检查...love2D API 中已经有一个 table 序列化库。