2016-09-27 13 views
1

テーブルを文字列に変換してから、もう一度やり直したい。テーブルを文字列に変換してからもう一度変換する

私はテーブルを送信するためにソケットモジュールを使いたいですが、私はそれを文字列で行う必要があります。

私はこのようにそれを行うしたいと思います:他の人が言っている

a = { 1, 2, 3 } -- create table 
b = tostring(a) -- convert table to string 
c = totable(b) -- convert string back to table 
+1

一般に、あなたはできません。 (いくつかの関数などはシリアライズできません)あなたの例のように、一連の数字だけが関係していますか?もしそうなら、あなたはそれを行うことができます。 –

+0

多くのツタンカーが私に見せてくれたので、主に文字列形式を使いたくなかった。私がやりたいことに便利なことばかりではありません。 – SpecialBomb

+0

@RyanVincent具体的には、座標とその他の情報をクライアントからサーバーに送信したいと考えています。これは、love2dエンジンを使用するゲーム用です。書式設定された文字列を送るのではなく、単にテーブルを送る方が簡単です。私がアクセスするために必要なのは、すべてを一緒に貼り付ける代わりに 'player.x = ...'です。 – SpecialBomb

答えて

2

として、あなたは簡単にすべてをシリアライズすることはできませんが、非常に多くのものをシリアル化することができます。この種のIPCの場合、JSONは現在です.Linguaフランカです。特に、他の多くの言語とかなり安全にやり取りすることができますので、お勧めします。

ルアはseveral implementationsですが、うまく動作するので、this one especiallyをチェックしてください。非常に安定しており、githubのメンテナンスのレベルは高いです。例コード:

json = require("json") 
encoded = json.encode(someVar) 
decoded = json.decode(someStr) 
+0

これは動作しますが、LOVEエンジンはJSONをサポートしていません。しかし、これは私の質問に答えるので、答えとして選択します。 – SpecialBomb

+0

このJSONの実装はネイティブのluaなので、両者を制御するならば、コード内のすべてをコピーすることができるかもしれません。どんな場合でも幸運:-) –

+0

いいえ。私は唯一望むことができます。私は実際にこれがサーバサイドで動作することを知っているので、それは50%完了です。 – SpecialBomb

4

これには既存のLuaライブラリが多数あります。 を参照してくださいhttp://lua-users.org/wiki/TableSerialization テーブルのシリアライズ機能はかなり簡単ですが、自分で書くことは良い学習の練習です。

PS。ちょうどチェックしました... love2D APIにはすでにテーブル直列化ライブラリがあります。

+0

[確かに!](https://love2d.org/wiki/Tserial) –

関連する問題