js json字符串与json对象互相转换(最全)
1.json字符串转json对象
使用场景:通常在取json字符串里具体的值时,会用到。
var jsonString = '{"name":"Marydon","website":"www.cnblogs.com"}';
方式一:eval()
使用eval()进行转换时需要在json字符串外包裹一对小括号,不加小括号无效。
var jsonObject= eval('(' + jsonString +')');
方式二:JSON.parse()
var jsonObject= JSON.parse(jsonString);
方式三:$.parseJSON()
页面需要引入jQuery
var jsonObject = $.parseJSON(jsonString);
方式四:使用json2.js
json2.js 提供了json的序列化和反序列化方法,完美支持各个浏览器。
使用时我们首先要将json2.js引用进来,源码地址:https://github.com/douglascrockford/JSON-js。
var jsonObject= JSON.parse(jsonString);
2.json对象转json字符串
使用场景:通常在使用ajax想后台传输数据时使用,因为如果直接传递json对象,java后台接收该请求的方法需要将请求参数格式指定为json对象,甚至将其转换成json字符串,对于后台开发人员很不方便。
var jsonObject = {"name":"Marydon","website":"www.cnblogs.com"};
方式一:JSON.stringify()
var jsonString = JSON.stringify(jsonObject);
方式二:使用json2.js
使用方式和上面一样。
var jsonString = JSON.stringify(jsonObject);
方式三:$.stringify()
首先,jQuery并没有该方法,但是我们可以对其进行扩展。
jQuery.extend({ stringify : function stringify(obj) { var t = typeof (obj); if (t != "object" || obj === null) { // simple data type if (t == "string") obj = '"' + obj + '"'; return String(obj); } else { // recurse array or object var n, v, json = [], arr = (obj && obj.constructor == Array); for (n in obj) { v = obj[n]; t = typeof(v); if (obj.hasOwnProperty(n)) { if (t == "string") v = '"' + v + '"'; else if (t == "object" && v !== null) v = jQuery.stringify(v); json.push((arr ? "" : '"' + n + '":') + String(v)); } } return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); } } });
第一步:在所需要使用的页面引入你的jQuery文件;
第二步:将上面js代码添加到在你要调用该方法代码之前的位置(最好是头部,方便代码维护)。
var jsonString = $.stringify(jsonObject);
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/11890879.html