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对象方法:
一:使用$.parseJSON(str)
//由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" }';
三:使用eval('('+str+')');
//由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”。
Eval方式可以转换以下标准和非标准格式字符串:
var str="{ 'name': 'John' }"; var str2='{ "name": "John" }'; var str3="{ name: 'John' }";
其实json对象是直接可以使用JQuery操作的格式,但是JSON字符串仅仅只是一个字符串,对于JSON字符串转化为JSON对象方法大家一定要会!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: