JSON一种简单的数据格式,是一种比较轻量级的数据存储格式,json字符串和json对象都与json相关,很多人不清楚json字符串和json对象的区别是什么?下面来我们就来给大家讲解一下。
一、json对象、json字符串的区别
1、json对象
json对象,json对象的属性可以用对象.属性调用。
json对象的console
通过console可以明显的看到:
*json对象的console.log()和单独使用console控制台输出json对象,结果都是object;
*json对象的属性访问:对象.属性
*json对象的类型可以通过typeof()查看,类型为object;
2、json字符串
json字符串是一个用单引号或者双引号引起来的字符串,因为字符串的格式符合json的格式,所以叫做json字符串。
json字符串的console
通过console可以明显的看到:
*json字符串的console.log()输出为{“name”:”静”,”age”:”19”,”sex”:”女”},如果通过外部否有单双引号来判别是jso字符串还是json对象,这里很容易被误导。
单独使用console控制台输出json字符串,结果”{“name”:”静”,”age”:”19”,”sex”:”女”}”;
*json字符串无属性值,如果误以为是json对象,通过字符串.属性访问的,结果是undefined,需要将json字符串转换为json对象即可访问;
*json对象的类型可以通过typeof()查看,类型为string;
JSON字符串如何转化JSON对象?
假设我们有如下 JSON 字符串需要转换为 JSON 对象。
var jsonStr = '[{"CityId":18,"CityName":"西安"},{"CityId":53,"CityName":"广州"}]';
1,使用eval()函数进行转换
使用 eval() 转换时需要在 json 字符外包裹一对小括号。
ie8(兼容模式)、ie7、ie6 不要使用此方法。
var jsonObj = eval('(' + jsonStr + ')'); alert(jsonObj[0]["CityName"]);
2,使用JSON.parse()方法进行转换
ie8(兼容模式)、ie7、ie6 不要使用此方法。
var jsonObj = JSON.parse(jsonStr);
3,使用json2.js进行转换
json2.js 提供了 json 的序列化和反序列化方法,完美支持各个浏览器。
使用时我们首先要将 json2.js 引用进来,源码地址:https://github.com/douglascrockford/JSON-js
var jsonObj = JSON.parse(jsonStr);
4,使用jQuery进行转换
如果我们项目中有使用 jQuery,那么直接使用 $.parseJSON() 方法即可,而且可以确保各个浏览器的兼容性。
var jsonObj = $.parseJSON(jsonStr);
我们可以参考以上四种方法进行JSON字符串与JSON对象之间的转换,这两者转换是工作中经常遇见的,因此我们一定要学会转换哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: