Json对象和Json字符串的区别
JSON字符串"与"JSON对象"的区别?
a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样。
b.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他。
JSON对象:
var person={"name":"zhangsan","sex":"男","age":"24"}//json对象
alert(person.name);//zhangsan
alert(typeof person);//object
person就是json对象。可以用perosn.name这种方式进行属性的调用。第三行代码就是看person的类型,为object类型。
JSON字符串:
var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
alert(person);//{"name":"zhangsan","sex":"男","age":"24"}
alert(typeof person);//string
person就是一个json字符串,之所以叫json字符串,因为字符串的格式符合json的格式,第三行代码也匹配其中的类型为string。
互相转换:
“JSON字符串"转化为"JSON对象”:
//使用$.parseJSON(str)
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+')');
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);
“JSON对象"转化为"JSON字符串”:
//一:使用全局方法JSON.stringify()与toJSONString()
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);