json对象和json字符串的区别是什么?json字符串如何解析?

在进行json测试的时候,我们经常会对json对象和json字符串做一些处理,并运用到开发项目中,那json对象和json字符串的区别是什么?下面来我们就来给大家讲解一下json对象和json字符串的区别。

1、Json对象

最显著的特征:对象的值可以用 “对象.属性” 进行访问;

typeOf(json对象) ===> Object类型

例子如下:

var person={"name":"shily","sex":"女","age":"23"}//json对象
console.log(person);
console.log(person.name);
console.log(typeof person);

输出结果是:

json对象和json字符串的区别是什么?json字符串如何解析?.jpg

2、Json字符串(所谓字符串:单引号或者双引号引起来)

例子如下:

var person='{"name":"shily","sex":"女","age":"23"}';//json字符串
console.log(person)
console.log(person.name)
console.log(typeof person)

输出结果是:

1.jpg

json字符串如何解析?

1.首先,我们先看一下什么是 json 格式字符串数据,很简单,就是 json 字符串化,在json 最外加单/双号变为字符串数据

var str='{"name":"Mike","sex":"女","age":"29"}';
var 
t2="[{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] 
";

2.我们用Object.prototype.toString.call() 来检测数据类型

console.log(Object.prototype.toString.call(str));//[object String]
console.log(Object.prototype.toString.call(t2));//[object String]

第一种方法:evel();

特点:安全性底,不建议使用,单个JSON对象时要加括号,JSON数组就不需要了

示例:

var evajson =eval('('+str+')');
var evajsarr = eval(t2);

转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

console.log(Object.prototype.toString.call(evajso))//[object Object]
console.log(Object.prototype.toString.call(evajsarr))//[object Array]

第二种:new Function()

注意:函数要有返回,所以要加“return”;

示例:

var fnjson = new Function("return"+str)();
var fnjsonArr = new Function("return"+t2)();

转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

console.log(Object.prototype.toString.call(fnjson ))//[object Object]
console.log(Object.prototype.toString.call(fnjsonArr ))//[object Array]

第三种:JSON.parse()

特点:主流,兼容性好,推荐

示例:

var parjson = JSON.parse(str);
var parjson = JSON.parse(t2);

检测转后的数据类型

console.log(Object.prototype.toString.call(parjson ))//[object Object]
console.log(Object.prototype.toString.call(parjson ))//[object Array]

以上这三种方法是解析json字符串常用的方法,我们可以多练习一下,掌握解析技巧,提高工作效率!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

java可以写爬虫吗?java写爬虫注意事项

qt怎么处理几百兆的json文件?qt如何解析json?

Java如何基础入门?java基础入门教学