9

これを見逃したかもしれませんが、lua テーブルをテキスト ファイルにシリアライズ/デシリアライズする組み込みの方法はありますか?

固定形式の lua テーブル (例: 5 行の 3 列のデータ) でこれを行うためのメソッドのペアが用意されていました。

任意の形式の lua テーブルでこれを行う方法はありますか?

たとえば、次の lua テーブルがあるとします。

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,
            },
        }
    },
}

次のようなテキストに変換されます。

{name="scnSplash",obj={{name="bg",type="background",path="scnSplash_bg.png",},{name="bird",  type="image",path="scnSplash_bird.png",x=0,y=682,}},}

シリアル化されたテキストの形式は、テキスト文字列を空の lua テーブルに逆シリアル化できる限り、どのような方法でも定義できます。

4

5 に答える 5

10

「任意の形式のluaテーブル」のシリアル化が非常に制限されているように見えるため、JSONライブラリが正しい答えとしてマークされた理由はわかりません。ブール/テーブル/関数の値をキーとして処理せず、循環参照も処理しません。共有参照は共有としてシリアル化されmath.hugeず、Windows では値が正しくシリアル化されません。これらのほとんどが JSON の制限 (したがって、ライブラリでこのように実装されている) であることは認識していますが、これは一般的な Lua テーブルのシリアル化 (そうではない) の解決策として提案されたものです。

TableSerializationページまたは私のSerpent シリアライザーと pretty-printerの実装の 1 つを使用する方が良いでしょう。

于 2012-06-13T19:14:03.613 に答える
5

Lua だけではそのようなビルトインはありませんが、実装するのは難しくありません。多くの事前に作成された実装がここにリストされています: http://lua-users.org/wiki/TableSerialization

于 2012-01-31T04:20:14.567 に答える
2
require "json"
local t = json.decode( jsonFile( "sample.json" ) )

シンプルな json シリアライザーについては、こちらを参照してください。

于 2012-01-31T05:44:02.527 に答える