75

有没有一种将 JavaScript 对象编码为 JSON 的好方法?

我有一个键值对列表...名称来自复选框,并且根据是否选中该框,该值是真还是假:

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

我想将这些值传递到 JSON 对象中,以便存储到 cookie 中以呈现表(将根据用户检查的内容添加列)。

有谁知道解决方案?

4

2 回答 2

139

我认为您可以使用JSON.stringify

// after your each loop
JSON.stringify(values);
于 2012-06-06T18:31:30.687 回答
38

现在所有主流浏览器都包含原生 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 类型包括:对象、字符串、数字、数组、truefalsenull

一些 JSON 资源:

于 2012-06-06T18:48:46.143 回答