2013-01-21 11 views
16

次のように私は連想配列を持っている:Javascript:連想配列を文字列に変換し、後で逆に変換する最も良い方法は?

var AssocArray = { id:0, folder:'Next', text:'Apple' }; 

は、今私は、データベースでこれを保管する必要があるので、私は、私はちょうど、文字列にこれを変換し、データベースに保存し、その後から引き出しますでしょう把握後でデータベースをjavascript配列に戻します。

catchは、実際の項目数と配列変数が毎回異なることになります(そのため、代わりに1つの長い文字列として保存する理由)。

この連想配列を文字列に変換する最良の方法は何ですか。文字列を連想配列に変換するにはどうしたらいいですか?

+0

はところで、JavaScriptですべてのオブジェクトが連想配列です。 –

+1

用語ではっきりしているように、JSにはPHPのような連想配列はありません。あなたのコードが示すのは、プロパティを持つオブジェクトです。言語的には、このJSは '$ obj = new stdClass();に近い。 $ obj-> id = 0; ... '。一般的には前後に変換できますが、連想配列を呼び出すのは間違いです。 – loganfsmyth

+0

@loganfsmyth JavaScriptでは、すべてのオブジェクトはデファクト*連想配列ですが、そうではありませんか? ECMAScript仕様では「連想配列」afaikを使用していませんが、オブジェクトの仕様は実際には連想配列です。 –

答えて

37

はそれのためJSONに勝るものはありません。

var str = JSON.stringify(obj); 
// >> "{"id":0,"folder":"Next","text":"Apple"}" 

var obj = JSON.parse(str); 
// >> Object({ id: 0, folder: "Next", text: "Apple" })