web-dev-qa-db-ja.com

JavaScriptオブジェクトをJSONとしてエンコードするにはどうすればよいですか?

JavaScriptオブジェクトをJSONとしてエンコードする良い方法はありますか?

キー値のペアのリストがあります...名前はチェックボックスからのもので、値はボックスがチェックされているかどうかに基づいてtrueまたはfalseです:

var values = {};
$('#checks :checkbox').each(function() { values[this.name]=this.checked; }); 

これらの値をJSONオブジェクトに渡し、テーブルをレンダリングするためにCookieに保存します(ユーザーがチェックした内容に応じて列が追加されます)。

誰もが解決策を知っていますか?

58
daniel langer

JSON.stringify を使用できると思います:

// after your each loop
JSON.stringify(values);
114
mimiz

すべての主要なブラウザーには、ネイティブJSONエンコード/デコードが含まれるようになりました。

// To encode an object (This produces a string)
var json_str = JSON.stringify(myobject); 

// To decode (This produces an object)
var obj = JSON.parse(json_str);

有効なJSONデータのみがエンコードされることに注意してください。例えば:

var obj = {'foo': 1, 'bar': (function (x) { return x; })}
JSON.stringify(obj) // --> "{\"foo\":1}"

有効なJSONタイプは、オブジェクト、文字列、数値、配列、truefalse、およびnullです。

いくつかのJSONリソース:

28
vezult