json字符串和json对象的区别是什么?JSON字符串如何转化JSON对象?

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工具网。

推荐阅读:

java有的图片不显示什么原因?java如何导入图片?

java面试需要哪些技术?这些技术一定要掌握

java如何创建线程?java创建线程的四种方式