数据传输
目前前端最为常用的数据传输格式有两种
- XML
- JSON
- TEXT
TEXT
适合小文本片段内容。无须解析,直接使用 innerHTML 插入页面,复杂内容后台拼接比较繁琐,并且无法传递对象信息,前台解析困难
XML
在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可以分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其他标签描述其他数据,以此来实现数据关系的描述。
XML语法
一个XML文件分为如下几部分内容:
- 文档声明
- 元素
- 属性
- 注释
- CDATA区、特殊字符
- 处理指令(processing instruction)
XML语法-文档声明
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
元素
- 每个XML文档必须有且只有一个根元素
- 元素必须成对出现
<root> <child> <grandson>小明<grandson> </child> </root>
元素内容中的空格会被保留作为内容传输
<root>
<child>
<grandson> 小明 <grandson>
</child>
</root>
命名规范
- 区分大小写,例如,元素P和元素p是两个不同的元素
- 不能以数字或下划线”_”开头
- 元素内不能包含空格
- 名称中间不能包含冒号(:)
- 可以使用中文,但一般不这么用
属性
格式:
<元素名 属性名1="属性值1" 属性名2="属性值2">
<root>
<child>
<grandson id="1">
<name>小明</name>
<age>22</age>
<grandson>
<grandson id="2">大明<grandson>
</child>
</root>
属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:
转译词 | 符号 | 说明 |
---|---|---|
\< | < | 小于 |
\> | > | 大于 |
\& | & | 于 |
\' | ' | 单引号 |
\" | " | 双引号 |
注释
<!--这是一个注释-->
JSON
虽然XML文档能够很好地处理结构化的数据,但是由于需要大量的标签来处理结构,这导致了内容传输量大大增加,提高了流量成本,降低了页面的性能.因此,人们需要一种更为简便的数据格式进行传输,JSON因此而生.
JSON 适合结构化内容,对象信息,复杂数据结构,传输量小,JS原生支持。已经逐步取代XML在XHR中的地位,成为主流传输格式。
下图是05年到2013年 xml和json的走势
JSON对象表示法
JSON 很像 JavaScript 中定义没有方法的对象,但属性必须使用双引号
对象表示法
var john = { "firstName":"John" , "lastName":"Doe" };
var user = { "id":2, "name":{ "firstName":"Jim", "lastName":"Green“ }, "gender":"男", "email":"jim@126.com" };
数组表示法
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
JSON 文件
- JSON 文件的文件类型是 ".json"
- JSON 文本的 MIME 类型是 "application/json"