JS-JSON
-
JSON简介
JSON Java Script Object Notation JS对象表示法
—JS中的对象只有JS自己认识,其他的语言都不认识;
—JSON就是特殊格式的字符串,这个字符串可以被任意语言所识别, 并且可以转换为任意语言中的对象;
—JSON主要用于数据的交互传递;
—JSON和JS对象的格式一样,只不过JSON字符串中的属性名必须加双引号,其他的和JS格式一致;
—JSON在IE7及以下的浏览器中不支持,所以在这些浏览器中调用时会报错;
JSON对象分类:
- 对象{}:
var obj = '{"name":"Tom","age":18,"gender":"boy"}';
- 数组[]:
var arr = '[1,2,3,"hello",true]';
JSON中允许的值:(函数和
undefined
不会允许)- 字符串
- 数值
- 布尔值
null
空对象- 对象(不包含函数)
- 数组
JSON
—在JS中为我们提供一个工具类,JSON;
—这个工具类可以帮助我们将一个JSON转换为JS对象,也可以将一个JS对象转换为JSON;
-
JSON.parse()
—可以将一个JSON字符串转换为js对象;
—需要一个JSON字符串作为参数,会将该字符串转换为JS对象并返回;
-
JSON.stringify()
—可以将一个JS对象转换为JSON字符串;
—需要一个JS对象作为参数,会返回一个JSON字符串;
为了兼容IE7浏览器,使用
eval()
—这个函数可以用来执行一段字符串形式的JS代码,并将执行结果返回;
—如果使用
eval()
执行的字符串中含有{}
,它会将{}
当成代码块;—如果不希望将其当成代码块,则需要在字符串前后加上一个
()
;—这个函数功能很强大,但是在开发中尽量不要使用,首先他的执行性能比较差,其次它还具有安全隐患;
<script> var jsonStr = '{"name":"Tom","age":18}'; var obj = eval("("+jsonStr+")"); console.log(obj); </script>
—兼容IE7及以下的浏览器最终方案:
如果需要兼容IE7及以下的JSON操作,可以通过引入一个外部的js文件进行处理;这个js文件是别人已经写好的相关语句;
- 对象{}: