JSON介绍
- 全称JavaScript Object Notation(JS对象表示法),是一种数据交换的文本格式,而不是一种编程语言
- 是一个特殊格式的字符串,可以被任意的语言所识别,可以转换为任意语言中的对象,在开发中主要用来数据的交互
JSON语法
- JSON和JS对象的格式一样,只不过JSON字符串中的属性名必须加双引号,其他的和JS语法一致
- JSON中允许的值:字符串、数值、布尔值、null、对象、数组
- JSON分类
- 对象{}
var obj = '{"name":"姓名","age":18,"gender":"男"}';
- 数组[]
var arr = '[1,2,3,"hello",true]';
JSON转换
在JS中,为我们提供了一个工具类,就叫JSON,这个对象可以帮助我们将一个JSON转换为JS对象,也可以将一个JS对象转换为JSON
- JSON.parse() 方法,把JSON字符串转换为JS 对象,将JSON字符串作为参数,返回JS对象
var json = '{"name":"姓名","age":18,"gender":"男"}';
var js = JSON.parse(json);
console.log(js);
- JSON.stringify()方法,把JS 对象串转换为JSON字符,将JS 对象字符串作为参数,返回JSON字符
var obj3 = {"name":"姓名","age":18,"gender":"男"};
console.log(str);
兼容性问题
JSON这个对象在IE7及以下的浏览器中不支持,所以在这些浏览器中调用时会报错
- eval()函数,可以用来执行一段字符串形式的JS代码,并将执行结果返回
备注1:如果使用eval()执行的字符串中含有{},它会将{}当成是代码块;如果不希望将其当成代码块解析,则需要在字符串前后各加一个()
备注2:函数功能很强大,可以直接执行一个字符串中的js代码,但是在开发中尽量不要使用,它的执行性能比较差,且具有安全隐患
var str = '{"name":"孙悟空","age":18,"gender":"男"}';
var obj = eval("("+str+")");
console.log(obj);
- 如果需要兼容IE7及以下的JSON操作,则可以通过引入一个外部的js文件来处理,可见附件