JSON
JSON是Javascript对象标记法
JSON是一种轻量级的数据交换格式
JSON具有自我描述且易于理解
为什么使用JSON:因为JSON格式仅仅是文本,它能够轻松地在服务器浏览器之间传输,并用作任何编程语言的数据格式。
JavaScript提供内建函数把以JSON格式写的字符串转换为JavaScript对象:
JSON.parse()
因此,如果以JSON格式从服务器接收数据,那么可以像JavaScript对象一样使用它。
JSON语法规则
(1)数据在名称/值对中
(2)数据由逗号分割
(3)花括号容纳对象
(4)方括号容纳数组
"name":"mez" //(1)
JSON名称需要双引号。而JavaScript名称不需要。
JSON格式几乎等同于JavaScript对象
在JSON中,键必须是字符串,由双引号包围
而在JavaScript中,键可以是字符串、数字或标识名称:
name:"mez" //javascript
JSON值
在JSON中,值必须是以下数据类型之一:
字符串、数字、对象(JSON对象)、数组、布尔、null
而在JavaScript中,不仅包括上述类型,还包括:
函数、日期、undefined
在JSON中,字符串必须由双引号编写。
而在JavaScript中,字符串可以由双引号和单引号编写。
JSON使用JavaScript语法
因为JSON语法由JavaScript对象标记法衍生而来,所以很少需要其他额外的软件来处理JavaScript中的JSON。
通过JavaScript,可以创建对象并向其分配数据:
var person = { name : "mez", age : 12, city : "Shanghai" };
可以使用person.name访问JavaScript对象,或者person["name"]
可以直接对JavaScript进行赋值来修改数据
person.name = "Steve Jobs";
//或
person["name"] = "Steve Jobs";
JSON文件的文件类型是“.json”
JSON文本的MIME类型是“application/json”
JSON.parse()
JSON的常规用途是同web服务器进行数据传输。
在从web服务器接收数据时,数据永远是字符串
通过JSON.parse()解析数据,这些数据会成为JavaScript对象。
Document
Document
来自服务器的JSON
可以使用Ajax请求从服务器请求JSON。
只要服务器的响应是用JSON格式编写的,就可以将字符串解析成JavaScript对象
Document
作为JSON数组
在对衍生数组的JSON使用JSON.parse()后,此方法将返回JavaScript数组,而不是JavaScript对象
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {myArr = JSON.parse(this.responseText);document.getElementById("demo").innerHTML = myArr[0];}
};
xmlhttp.open("GET", "json_demo_array.txt", true);
xmlhttp.send();//json_demo_array.txt内容
[ "porsche", "BMW", "Volvo", "Audi" ]