之前一朋友在说起js中关于json字符串转json对象的问题,之后想写个文章简单记录一下的后来就给忘了,现在记得赶紧记录一下^_^
几种字符串转json的方法:
1、在js中把json字符串转json对象的方法不止一种,最常见的一种方式如下, 使用到eval方法:
上面这种方法有一点要注意的是要在json字符串的
两边加上括号,然后再用eval函数就行转换!
2、另外一种是使用Function来进行转换,大致如下:
可以看到其原理就是拼接js代码字符串,然后使用
Function创建一个匿名方法然后调用之!
3、还有一种是使用JSON全局对象,不过比较可惜的是 IE8以下的版本木有这个对象(囧TZ~),如果不考虑兼容IE8一下版本的话JSON全局对象是个很有用的东西,使用的代码如下:
JSON对象提供了两个很有用的方法,JSON.parse()方法接受一个字符串作为参数,返回一个json对象;JSON.stringify()方法则相反!
PS:有一个比较常用的组建,叫做 json2,这个组件也提供了一个全局对象,也是叫JSON,同样也有parse和stringify两个方法,使用这个组建可以很好的解决IE8以下版本使用不了JSON全局变量的方法,需要这个组建的话请前往这里 https://github.com/douglascrockford/JSON-js,在源代码专用意见有使用说明了!
4、如果使用JQuery的话还有一个方法,就是jQuery.parseJSON()方法,和上面几个的效果一样,都是接受字符串返回json对象,代码如下:
需要注意的是,这个方法是
1.4版本才有的!
请注意Json格式:
对于json很多人经常会这样来定义:var jsonObj = {name:"serafin", age:26}; 在这里需要注意的是,这样定义在上面几种方法中,只有前面两种方法可以正常使用,后面两种方法会出现报错!其实最标准的定义应该是这样的:var jsonObj = {"name":"serafin", "age":26}; 也就是说每个key都要用 双引号括住!这样的格式在上面几种方法都可以正常使用!
几种字符串转json的方法:
1、在js中把json字符串转json对象的方法不止一种,最常见的一种方式如下, 使用到eval方法:
javascript代码
1
2
|
var
jsonStr =
'{"userName": "tiu","userAge": 26,"isMale": true}'
;
var
json = eval(
"("
+ jsonStr +
")"
);
|
2、另外一种是使用Function来进行转换,大致如下:
javascript代码
1
2
|
var
jsonStr =
'{"userName": "tiu","userAge": 26,"isMale": true}'
;
var
json = (
new
Function(
"return "
+ jsonStr))();
|
3、还有一种是使用JSON全局对象,不过比较可惜的是 IE8以下的版本木有这个对象(囧TZ~),如果不考虑兼容IE8一下版本的话JSON全局对象是个很有用的东西,使用的代码如下:
javascript代码
1
2
3
|
var
jsonStr =
'{"userName": "tiu","userAge": 26,"isMale": true}'
;
var
json = JSON.parse(jsonStr);
var
str = JSON.stringify(json);
|
PS:有一个比较常用的组建,叫做 json2,这个组件也提供了一个全局对象,也是叫JSON,同样也有parse和stringify两个方法,使用这个组建可以很好的解决IE8以下版本使用不了JSON全局变量的方法,需要这个组建的话请前往这里 https://github.com/douglascrockford/JSON-js,在源代码专用意见有使用说明了!
4、如果使用JQuery的话还有一个方法,就是jQuery.parseJSON()方法,和上面几个的效果一样,都是接受字符串返回json对象,代码如下:
javascript代码
1
2
|
var
jsonStr =
'{"userName": "tiu","userAge": 26,"isMale": true}'
;
var
json = jQuery.parseJSON(jsonStr);
|
请注意Json格式:
对于json很多人经常会这样来定义:var jsonObj = {name:"serafin", age:26}; 在这里需要注意的是,这样定义在上面几种方法中,只有前面两种方法可以正常使用,后面两种方法会出现报错!其实最标准的定义应该是这样的:var jsonObj = {"name":"serafin", "age":26}; 也就是说每个key都要用 双引号括住!这样的格式在上面几种方法都可以正常使用!