所有现代浏览器都支持 JSON 对象, 有两个非常有用的方法来处理 JSON 格式的内容:
JSON.parse(string) : 接受一个 JSON 字符串并将其转换成一个 JavaScript 对象.
JSON.stringify(obj) : 接受一个 JavaScript 对象并将其转换为一个 JSON 字符串.
比如我有两个变量, 我要将 a 转换成字符串, 将 b 转换成 JSON 对象:
- var a={
- "name":"tom","sex":"男","age":"18"
- };
- var b='{"name":"Mike","sex":" 女 ","age":"18"}';
在 Firefox,Chrome,opera,Safari,ie9,ie8 等高级浏览器直接可以用 JSON 对象的 stringify() 和 parse() 方法.
JSON.stringify(obj) 将 JSON 转为字符串.
JSON.parse(string) 将字符串转为 JSON 格式;
上面的转换可以这么写:
- var a={
- "name":"tom","sex":"男","age":"18"
- };
- var b='{"name":"Mike","sex":" 女 ","age":"18"}';
- var aToStr=JSON.stringify(a);
- var bToObj=JSON.parse(b);
- console.log(typeof(aToStr)); //string
- console.log(typeof(bToObj));//object
这些方法通常用在对象上, 但它们也可以在数组上使用:
- const myArr = ['bacon', 'letuce', 'tomatoes'];
- const myArrStr = JSON.stringify(myArr);
- console.log(myArrStr);
- // "["bacon","letuce","tomatoes"]"
- console.log(JSON.parse(myArrStr));
- // ["bacon","letuce","tomatoes"]
ie8(兼容模式),ie7 和 ie6 没有 JSON 对象, 不过我提供了一个 JSON.JS, 这样 ie8(兼容模式),ie7 和 ie6 就可以支持 JSON 对象以及其 stringify() 和 parse() 方法; 你可以上抠抠 qun:864305860 获取到这个 JS, 一般现在用 json2.JS.
ie8(兼容模式),ie7 和 ie6 可以使用 eval() 将字符串转为 JSON 对象,
- var c='{"name":"Mike","sex":" 女 ","age":"18"}';
- var cToObj=eval("("+c+")");
- console.log(typeof(cToObj));
jQuery 中也有将字符串转为 JSON 格式的方法 jQuery.parseJSON( JSON ), 接受一个标准格式的 JSON 字符串, 并返回解析后的 JavaScript (JSON) 对象. 当然如果有兴趣可以自己封装一个 jQuery 扩展, jQuery.stringifyJSON(obj) 将 JSON 转为字符串.
JSON.parse() 和 JSON.stringify() 的高级用法, 可以将返回值过滤, 转换等
来源: http://www.qdfuns.com/article/51117/eb6ce5d5e4286228079b12d55db0d900.html