如何将JavaScript对象编码为JSON?

dan*_*ger 60 javascript checkbox jquery json hashtable

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

我有一个键值对列表...其中名称来自一个复选框,根据是否选中该框,该值为true或false:

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

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

有谁知道解决方案?

mim*_*miz 117

我想你可以使用JSON.stringify:

// after your each loop
JSON.stringify(values);
Run Code Online (Sandbox Code Playgroud)

  • IE 10给出:JavaScript运行时错误:'JSON'未定义 (2认同)

vez*_*ult 28

现在所有主流浏览器都包含原生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);
Run Code Online (Sandbox Code Playgroud)

请注意,只会编码有效的JSON数据.例如:

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

有效的JSON类型是:对象,字符串,数字,数组true,falsenull.

一些JSON资源: