Q:什么是"JSON字符串",什么是"JSON对象",二者的区别?post
a.JSON对象是直接能够使用JQuery操做的格式,如C#中能够用对象(类名)点出属性(方法)同样
b.JSON字符串仅仅只是一个字符串,一个总体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;spa
JSON对象:code
var str2 = { "name": "deluyi", "sex": "man" };
JSON字符串:server
var str1 = '{ "name": "deyuyi", "sex": "man" }';
Q:将"JSON字符串"转化为"JSON对象"的方法?对象
一:使用$.parseJSON(str)blog
//由JSON字符串转换为JSON对象
var str='{ "name": "John" }'; var obj = jQuery.parseJSON(str) alert("1"+ obj.name);
ps:此种方式仅支持标准格式:var str='{ "name": "John" }';
二:JSON.parse(str)字符串
var str = '{ "name": "mady", "age": "24" }'; var obj = JSON.parse(str); alert(obj.name);
ps:此种方式仅支持标准格式:var str='{ "name": "John" }';string
三:使用eval('('+str+')');it
//由JSON字符串转换为JSON对象
var str='{ "name": "John" }'; var obj = eval('(' + str + ')'); alert( obj.name); var str2="{ 'name': 'John' }"; var obj2 = eval('(' + str2 + ')'); alert( obj2.name); var str3="{ name: 'John' }"; var obj3 = eval('(' + str3 + ')'); alert( obj3.name);
以上均会输出结果“john”。ast
Eval方式能够转换如下标准和非标准格式字符串:
var str="{ 'name': 'John' }"; var str2='{ "name": "John" }'; var str3="{ name: 'John' }";
Q:将"JSON对象"转化为"JSON字符串"的方法?
一:使用全局方法JSON.stringify()与toJSONString()
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
Q:读取JSON对象的方法?
如上面的例子:
var str2 = { "name": "mady", "sex": "man" };
就能够这样读取:
alert(str2.name);//和C#同样直接往出点…
弹出” mady”。
咱们遇到的JSON不多有这么简单的,好比复杂一点的JSON对象如:
var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}};
解析用:
alert(str.GetUserPostByIdResult.Name);//一次点不出来,我多点几回
弹出:”mady”。