当前位置:编程学习 > XML/UML >>

Asp.Net+Jquery.Ajax详解10-JSON和XML+写在最后

以前,XML是程序员的宠儿,是数据传输、API、AJAX应用等方面的不二选择,,特别是遇到AJAX应用的时候,XMLHttpRequest会检查返回数据的MIME类型,如果是text/xml类型,XMLHttpRequest就会运行XML Parser来解析返回的文档,并在内存中构建出对应的DOM树,之后,你可以用JavaScript标准的DOM方法来操作DOM树。由于众所周知DOM的诟病,这显然不是有效率的方法。另外一个问题是,如果你想使用JavaScript对象而不是直接用XML数据的话,你还得自己遍历整个DOM树来创建相应对象。

 

于是JSON横空出世.

 

JSON提供了一种更适合AJAX应用的标准数据交换格式。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。

 

JSON有很多优势,但也存在缺点,而XML虽然确实存在不少问题,两者对比,推荐看老K博客

 

本文重在演示用Jquery.ajax获取后台的json数据和xml数据,两者对比参考文中推荐博客。

 

客户端代码

[html] 
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsonXmlTest.aspx.cs" Inherits="JqueryAjaxTest.JsonTest" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
 
        $("document").ready(function () { 
            $.getJSON( 
                "Data/JsonData.txt", 
                 function (JsonData) { 
                     $.each(JsonData.employees, function (i, item) { 
                         $("#result1").append(item.firstName + " " + item.lastName + "<br/>"); 
                     }) 
                 }) 
 
            $.ajax({ 
                url: "Data/XmlData.xml", 
                success: function (XmlData) { 
                    var XmlContent = ""; 
                    //尝试一下这样的each用法 
                    $(XmlData).find("name").each(function () { 
                        XmlContent += $(this).children("firstName").text() + " " + $(this).children("lastName").text() + "<br>"; 
                    }); 
                    $("#result2").html(XmlContent); 
 
                }, 
                dataType: "xml" 
            }); 
        }) 
    </script> 
</head> 
<body> 
    <div id="result1"> 
     
    </div> 
    <hr /> 
      <div id="result2"> 
    </div> 
</body> 
</html> 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsonXmlTest.aspx.cs" Inherits="JqueryAjaxTest.JsonTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">

        $("document").ready(function () {
            $.getJSON(
                "Data/JsonData.txt",
                 function (JsonData) {
                     $.each(JsonData.employees, function (i, item) {
                         $("#result1").append(item.firstName + " " + item.lastName + "<br/>");
                     })
                 })

            $.ajax({
                url: "Data/XmlData.xml",
                success: function (XmlData) {
                    var XmlContent = "";
                    //尝试一下这样的each用法
                    $(XmlData).find("name").each(function () {
                        XmlContent += $(this).children("firstName").text() + " " + $(this).children("lastName"

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,