method for serializing lua tables
Solution 1
require "json"
local t = json.decode( jsonFile( "sample.json" ) )
reference here for a simple json serializer.
Solution 2
I'm not sure why JSON library was marked as the right answer as it seems to be very limited in serializing "lua tables with any arbitrary format". It doesn't handle boolean/table/function values as keys and doesn't handle circular references. Shared references are not serialized as shared and math.huge
values are not serialized correctly on Windows. I realize that most of these are JSON limitations (and hence implemented this way in the library), but this was proposed as a solution for generic Lua table serialization (which it is not).
One would be better off by using one of the implementations from TableSerialization page or my Serpent serializer and pretty-printer.
Solution 3
Lua alone doesn't have any such builtin, but implementing one is not difficult. A number of prebaked implementations are listed here: http://lua-users.org/wiki/TableSerialization
Related videos on Youtube
cctan
Updated on June 04, 2022Comments
-
cctan almost 2 years
I may have missed this, but is there a built-in method for serializing/deserializing lua tables to text files and vice versa?
I had a pair of methods in place to do this on a lua table with fixed format (e.g. 3 columns of data with 5 rows).
Is there a way to do this on lua tables with any arbitrary format?
For an example, given this lua table:
local scenes={ {name="scnSplash", obj={ { name="bg", type="background", path="scnSplash_bg.png", }, { name="bird", type="image", path="scnSplash_bird.png", x=0, y=682, }, } }, }
It would be converted into text like this:
{name="scnSplash",obj={{name="bg",type="background",path="scnSplash_bg.png",},{name="bird", type="image",path="scnSplash_bird.png",x=0,y=682,}},}
The format of the serialized text can be defined in any way, as long as the text string can be deserialized into an empty lua table.
-
cctan about 12 yearsouch, no wonder lua tables look like json, there was already a library for Corona in here.
-
Hola Soy Edu Feliz Navidad about 10 yearsI agree with you, Lua is not JS.