序列化Lua表,包括纯Lua函数?

时间:2012-05-27 02:21:59

标签: serialization lua

我们需要序列化包含字符串,数字,表和函数的Lua表。 Programming Lua一书中有一些代码可以序列化由字符串,数字和表组成的表。我们尝试调整此函数以添加序列化函数的功能。具体来说,我们为type =='function'添加了一个case并在函数上调用了string.dump:

if type(o) == "number" then
    return tostring(o)
elseif type(o) == "function" then
    return "loadstring("..string.dump(o)..")"
else
    -- assume it is a string
    return string.format("%q", o)
end

这将Lua字节码注入到明文表表示的其余部分。这是我们最接近的事情。

我们不在乎他的序列化结果是否是人类可读的,它只需要能够像这样工作:

mytable = [some complicated lua table with functions]
dump = dump_t(mytable)

...

loaded_table = load_t(dump)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

有关许多实现,请参阅the wiki page

Tony Finch's version可能适合您。