在 Corona SDK 中将 Lua 对象转换为 JSON

我从更多的面向对象语言(Java、C++、C#)转来,所以我有点难以理解 Lua 如何处理对象。

我在一个 User.lua 文件中声明了一个用户对象,如下所示:

local User = {align="neutral", justness=50, sceneData=nil};

我尝试将其转换为 JSON 格式以便保存到文本文件中,如下所示在 User.lua 文件中

function User:save ()
    print ("Saving game state")
    local data = json.encode(self);
    local file = io.open (path, "w");
    file:write ( data );
    io.close( file );
    file = nil;
end

函数调用是:

User:save();

但程序只在文本文件中保存了 []。我该如何引用对象,以使它保存表数据?(编辑:)我想能够保存表并使它能够创建一个带有表数据的新对象,在用户关闭和重新打开应用程序后。

此外,sceneData 是 Scene 类的对象,它是否会为该 Scene 对象编码表数据,还是我需要额外处理它?

点赞