Ajax的数据解析

从服务器返回的数据格式有如下三种:

Text(又称Html格式)
XML
JSON

text和xml 是通过XmlHttpRequest的属性responseText和responseXml属性进行获取的;


ajax如何处理Text数据格式

responseText获取:可以用Xml·HttpRequest.res[onseTexr直接获取到服务器返回的文本信息;


ajax如何处理HTML数据格式

responseXml获取返回节点的数据可用如下代码进行获取:

var mes=myXmlHttpRequest.responseXML.getElementsByTagName("mes");//获取所有节点为mes的数据
var mes_val=mes[0].childNodes[0].nodeVal ue;//获取第一个节点的为mes的第一个子节点的value,如果没有子节点就获取该节点的value;

JSON(JavaScript Object  Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着JavaScript中处理JSON数据不需要任何特殊的API或工具包。 


ajax如何处理json数据格式

json的格式如下 :
"{属性名:属性值,属性名:属性值,.... }"
因为json数据是原生态数据,因此这种数据格式很稳定,而且描述能力强,我们建议大家使用json格式

json数据格式的扩展
如果服务器返回的json 是多组数据,则格式应当如下:

$info="[{"属性名":"属性值",...},{"属性名":"属性值",...},....]";

在xmlhttprequest对象接收到json数据后,应当这样处理

//转成对象数组

var reses=eval("("+xmlHttpRequest.responseText+")");

//通过reses可以取得你希望的任何一个值

reses[?].属性名

 <script language="JavaScript">
     var people ={"firstName": "Brett", "lastName":"McLaughlin", 
                                                        "email": "brett@newInstance.com" };
     alert(people.firstName);
     alert(people.lastName);
     alert(people.email);
 </script>
 <script language="JavaScript">
      var people =[
                     {"firstName": "Brett","email": "brett@newInstance.com" },
                     {"firstName": "Mary","email": "mary@newInstance.com" }
                ];
    alert(people[0].firstName);
    alert(people[0].email);
    alert(people[1].firstName);
    alert(people[1].email); 
 </script>

更加复杂的json数据格式
<script language="JavaScript">
     var people ={
            "programmers":
              [
                {"firstName": "Brett", "email": "brett@newInstance.com" },
                {"firstName": "Jason", "email": "jason@servlets.com" }
              ],
            "writer":
			[
				{"writer":"宋江","age":"50"},
				{"writer":"吴用","age":"30"}
			],
			"sex":"男"
};
window.alert(people.programmers[0].firstName);
window.alert(people.programmers[1].email);
window.alert(people.writer[1].writer);
window.alert(people.sex);
 </script>

<script language="JavaScript">
      var people ={
             "username":"mary",
             "age":"20",
             "info":{"tel":"1234566","celltelphone":788666},
             "address":[
                     {"city":"beijing","code":"1000022"},
                     {"city":"shanghai","code":"2210444"}
              ]
        };

      window.alert(people.username);
      window.alert(people.info.tel);
      window.alert(people.address[0].city);
 </script>

小结
当一个ajax请求到服务器,服务器可以根据需求返回 三种格式的数据,那么我们应当选择哪一个?
  1. 如果你的项目经理没有特殊的要求,建议使用json
  2. 若应用程序不需要与其他应用程序共享数据的时候, 使用 HTML 片段来返回数据时最简单的
  3. 如果数据需要重用, JSON 文件是个不错的选择, 其在性能和文件大小方面有优势
  4. 当远程应用程序未知时, XML 文档是首选, 因为 XML 是 web 服务领域的 “世界语”



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值