1. 区别
a.JSON对象是直接可以使用JQuery操作的格式
b.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用
1. 当我们alert JSON对象 看到的都是Objectd 时候, 想要知道object 是什么时, 先转换为JSON字符串再 alert,通过 JSON.Stringify(json对象)
2. 当我们需要知道 JSON字符串中的某个属性 ,需要先转换为 JSON对象 通过alert(对象.属性)的方式来看,
如果直接 alert, 显示的就是undefined, 要先通过JSON.parse(字符串)转为对象
---- 主要是 区别 , 相互转换的方法 , 使用注意事项---(记住常用的方法)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
//这个是json对象,不带引号
var str1 = {
"name" : "hello",
"sex" : "man"
};
//这是json字符串
var str2 = '{"name":"java","sex":"man"}';
//alert(str1);
//alert(str2);
//alert(str1.name);
//alert(str2.name); //可以看到这个是 undefined的,说明只能由JSON对象获取属性
//1. 将JSON字符串转为JSON对象, JSON.parse(字符串)
var obj = JSON.parse(str2); //这种方法只支持标准格式,也就是类似str2的格式
alert(obj.name);
//2. 使用 eval('('+str')')
var s1 = '{name:111}';
var o1 = eval('(' + s1 + ')');
alert(o1.name);
//(2) ---将JSON对象转为 JSON字符串
// 1.使用全局方法JSON.stringify() 或
// toJSONString()(好像要引入json.js https://github.com/douglascrockford/JSON-js)
var strToObj=JSON.stringify(str1);
alert(strToObj);
</script>
</body>
</html>