JSON字符串、JSON对象的区别与两者之间的相互转换

来源:互联网 发布:影视后期特效合成软件 编辑:程序博客网 时间:2024/05/16 11:10

一、JSON字符串、JSON对象的区别


首先要明白一点,一个是字符串,一个是对象,两者有本质性的差别。

JSON对象是直接可以使用JQuery操作的格式,和js中的对象一样,可以用对象(类名)点出属性(方法)。

JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;
JSON对象:
var str2 = { "name": "haorooms", "sex": "man" };
JSON字符串:
var str1 = '{ "name": "haorooms", "sex": "man" }';
"JSON字符串"转化为"JSON对象"
var str2 = { "name": "haorooms", "sex": "man" };
就可以这样读取:
alert(str2.name);  //弹出” haorooms”
我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如:
var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"haorooms"}};

解析用:

alert(str.GetUserPostByIdResult.Name); //弹出haorooms

二、两者之间的相互转换


1>jQuery插件支持的转换方式: 
复制代码 代码如下:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 
复制代码 代码如下:
JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 

注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。 

3>Javascript支持的转换方式: 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 

注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 

三、总结

    

     json数据在前后台的数据交互过程中起着很重要的作用,认真学习一下还是很有必要滴

0 0
原创粉丝点击