3

私はluaの初心者です。次の文字列を lua テーブルに変換する必要があります。どうすればこれを行うことができますか?

str = "{a=1, b=2, c={d=3,e=4} }"

この文字列を lua テーブルに変換して、次のようにアクセスできるようにします。

print(str['a']) -- Output : 1
print(str['c']['d']) -- Output : 3
4

1 に答える 1

12

文字列の先頭にを追加するだけstr =で、インタプリタにその文字列をチャンクとしてロードさせることができます。loadstringチャンクは実行されませんが、関数を返すことに注意してください。したがって()、その関数をすぐに呼び出すために追加し、実際にコードを実行します。

loadstring("str = "..str)()

これは同じことをします:

str = loadstring("return "..str)()

ただし、自分で文字列を生成しないと、危険な場合があります(コードが実行されるため)その場合、文字列を手動で解析して、文字列が実際にテーブルであり、不正な関数呼び出しが含まれていないことを確認することをお勧めします。

于 2013-03-14T14:57:27.470 に答える