JSON(Javascript Object Notation)的作用:
用于在浏览器和服务器之间以及不同的编程语言间进行数据交互(原来用的是xml,现在已被更简洁的JSON取代)。JSON是一个对象,也是一个字符串。
由于数据在浏览器与服务器之间进行交换时这些数据只能是文本(字符串),加上JS中的对象在其他语言(如服务器语言Java、php等)中无法被读取,因此经常要使用JSON将其转化为可以被服务器或其他语言读取的形式,以达到在网页和服务器之间传递数据的作用。
JSON只有两种书写格式:
1.以对象的形式转化、传递数据:{ } // 以对象的形式传递数据时,属性名一定要加**双引号**
2.以数组的形式转化、传递数据:[ ]
JSON只能转化、传递以下6种类型的数据:
1.字符串
2.数值
3.布尔值
4.Null
5.对象
6.数组
JSON转化数据的方法
1.将其他语言传入的对象转成js对象:JSON.parse(对象)
2.将js对象转成JSON字符串:JSON.stringify(js对象)
JSON对象的兼容性:IE7及以下浏览器不支持
如何解决兼容性问题?
方法一:
使用eval()函数:可执行字符串形式的代码,并返回执行结果。 // 字符串本身是不可执行的,但是用了eval函数相当于是去掉了字符串的引号。
参数:字符串
如:
var str = "alert('hello)"; // 这段代码是以字符串的形式书写,因此不会执行。
eval(str); // 使用eval函数可使上述字符串代码执行。
注意:eval函数的参数中如果含有{},则会将其看做代码块,然后报错。
如:
var str = '{"name":"lin","age":28}';
eval(str); // 报错
解决方法:在字符串前后加上小括号
var str = '({"name":"lin","age":28})';
eval(str);
方法二:
引入一个外部js文件,这个文件会自动创建一个JSON对象供IE7及以下版本的浏览器使用。
Javascript和JSON的区别:
JSON虽基于javascript基本语法(写在script标签中),但它并不是javascript。二者区别如下: