- jQuery插件支持的转换方式
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
- 浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:
js 代码:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。
JSON.stringify(obj)将JSON转为字符串。
JSON.parse(string)将字符串转为JSON对象;
js 代码:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
//或者
//var last=a.toJSONString(); //将JSON对象转化为JSON字符
alert(typeof(aToStr)); //string
var bToObj=JSON.parse(b);
//或者
//var obj = b.parseJSON(); //由JSON字符串转换为JSON对象
//然后,就可以这样读取:
alert(typeof(bToObj));//object
alert(bToObj.name);
alert(bToObj.sex);
- Javascript支持的转换方式
ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,
js 代码:
var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
注意:
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
4 .JSON官方的转换方式:
ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。