您的位置:首页 > Web前端 > JavaScript

2.ajax数据交互xml和json

2017-10-27 00:20 225 查看
浏览器端只是负责用户的交互和数据的收集以及展示,真正的数据都是存储在服务器端的。

我们现在通过ajax的确可以返回一些简单的数据(一个字符串), 但是在实际开发过程中,肯定会会设计大量的复杂类型的数据传输,比如数组、对象等,但是每个编程语言的语法都不一样。因此我们会采用通过的数据交换格式(XML、JSON)来进行数据的交互。

XML:

XML 指可扩展标记语言(EXtensible Markup Language)

XML 是一种标记语言,很类似 HTML

XML 的设计宗旨是传输数据,而非显示数据

XML 标签没有被预定义。需要自行定义标签。
xml语法规范

第一行必须是版本信息

必须有一个根元素(有且仅有一个)

标签不可有空格、不可以数字或.开头、大小写敏感

不可交叉嵌套,都是双标签,如果是单标签,必须闭合

属性双引号(浏览器自动修正成双引号了)

特殊符号要使用实体

注释和HTML一样
<students>  
<student>  
<name>张三</name>  
<age>18</age>

<gender>男</gender>  

<desc>路人甲</desc>  

</student>  

<student>  

<name>李四</name>

<age>20</age>  

<gender>男
</gender>  

<desc>路人乙</desc>  

</student>

</students>
php获取xml文件的内容

// 注意: 如果需要返回 xml 数据, 需要将 content-type 改成 text/xml, 不然浏览器以 text/html 解析header( 'content-type:text/xml;charset=utf-8' );

// file_get_content 用于获取文件的内容

// 参数: 文件的路径$result = file_get_content( "data.xml" );echo $result;
js解析xml

//获取服务端返回的xml数据,需要使用xhr.responseXML,这是一个document对象,可以使用DOM中的方法查找元素。var data = xhr.responseXML;

//获取所有的学生var students = data.querySelectorAll("student");

缺点:虽然可以描述和传输复杂数据,但是其解析过于复杂, 并且体积较大,所以实现开发已经很少使用了。

JSON

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范,采用独立于编程语言的文本格式来存储和表示数据。

书写规范:

数据在 键值对 中

数据由逗号分隔(最后一个 键值对 不能带逗号)

花括号保存对象,方括号保存数组

键使用双引号

var json = '{"a": "Hello", "b": "World"}';

JSON数据在不同语
ace8
言进行传输时,类型为字符串,不同的语言各自也都对应有解析方法,解析完成后就能很方便的使用了。


1.js对象和数组转换成,json字符串

JSON.stringify(obj/arr);

2.转换为js字符串

JSON.parse(JSONstr);

php中解析json:

json==>php对象/关联数组

通过获取 file_get_contents("data.json");

json_decode($data,true)//传参true是数组,false则是对象

php==>json

json_encode($obj/$arr)

处理兼容性问题:
var xhr = null;
if(XMLHttpRequest){
//现代浏览器 IE7+  
xhr = new XMLHttpRequest();}
else{ //老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:  
xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax数据传输