json的概念
jsON (JavaScript Object Notation) 一种简单的数据格式,是一种比较轻量级的数据存储格式;
JSON的优势:
- JSON更快
- 兼容性广泛
- 共享数据的最佳工具
- 在服务器上解析
JSON的缺点:
- 没有错误处理
- 安全性
- 支持工具有限
json对象与json字符串的区别
开发时,json字符串和json对象傻傻分不清楚,ajax异步请求后,会根据返回的data值判断请求是否成功,访问data.msg会提示‘undefined’,将data转换为json对象即可。
JSON对象的属性可以用对象.属性调用,和js中的对象一样,可以用对象(类名)点出属性(方法)。
JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用。
JSON对象:
var str2 = { "name": "有课前端网", "url": "htttps://www.webqdkf.com" };
JSON字符串:
var str1 = '{ "name": "有课前端网", "url": "htttps://www.webqdkf.com" }';
JSON字符串转换为JSON对象
要运用上面的str1,必须运用下面的要领先转化为JSON对象(这一点在ajax返回的时候,经常遇到!):
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
console.log(obj.name);
console.log(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
JSON对象转化为JSON字符串
可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
console.log(last);
读取JSON对象的方法:
var str2 = { "name": "有课前端网", "url": "htttps://www.webqdkf.com" };
console.log(str2.name)
str2['name']
如果是变量,只能使用[]的方式:
var key='name
console.log(str2[key])
复杂的JSON对象:
我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如:
var str={"data":{"Age":"33","Id":"1","Name":"有课前端网"}};
解析用:
console.log(str.data.Name);
或者使用[]:
console.log(str.data['Name']);
console.log(str['data']['Name']);