真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript如何解析JSON及XML

這篇文章給大家分享的是有關(guān)JavaScript如何解析JSON及XML的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司專注于介休網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供介休營銷型網(wǎng)站建設(shè),介休網(wǎng)站制作、介休網(wǎng)頁設(shè)計、介休網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造介休網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供介休網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

一、JSON

即JS對象標記(JavaScript Object Notation),是一種以JS聲明對象的方式組合的一串字符串。
  JS可以按以下方式定義對象:

var
 obj 
=
    {
        id: 
2
,
        name: 
'
n
'
    };

這樣就定義了對象 obj, 它有兩個公共屬性id和name,可以用 obj.id 的方式直接訪問其屬性值。

服務(wù)器獲取數(shù)據(jù)時往往不止一個對象,這就需要用到對象數(shù)組,JS中對象數(shù)組可以用 [] 來定義,如下:

  var
 objs 
=
 [{ id: 
1
, name: 
'
n_1
'
 }, { id: 
2
, name: 
'
n_2
'
}];
        alert(objs[
0
].id);

這樣就定義了對象數(shù)組 objs, 它包含兩個對象,可以用索引來訪問,如 objs[0] 將引用到第一個對象。
  到這里你或許已經(jīng)想到服務(wù)器返回的字符串格式是怎樣的,但字符串畢竟是字符串,我們需要將其轉(zhuǎn)換為可以利用JS操作的變量。
  這就用到 eval 函數(shù),請看下例:

 var
 objs 
=
 eval(
"
[{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}]
"
);
        alert(objs[
0
].id); 
//
 return 1

好了,服務(wù)器端你只要以格式:[{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}] 返回字符串,
  在客戶端就可以利用 eval() 執(zhí)行返回的字符串,獲得對象數(shù)組。

以下用AJAX做一個簡單的例子。新建一個網(wǎng)站,在根目錄下添加一個一般處理程序(GetJson.ashx),代碼如下:

JavaScript如何解析JSON及XMLJavaScript如何解析JSON及XMLGetJson.ashx
<%@ WebHandler Language="C#" Class="GetJson" %>

using System;
using System.Web;

public class GetJson : IHttpHandler {
   
   public void ProcessRequest (HttpContext context) {

       string str = "[{id:1, name:'n_1'}, {id:2, name:'n_2'}]";
       
       context.Response.ContentType = "text/plain";
       context.Response.Write(str);
   }

   public bool IsReusable {
       get {
           return false;
       }
   }

}

在Default.aspx 文件中添加測試腳本:

    <
script type
=
"
text/javascript
"
>
        
function
 getJson() {
            
//
 在IE7下測試通過,IE6下必須創(chuàng)建 new ActiveXObject("MSXML2.XMLHTTP.6.0")
            
var
 request 
=
 
new
 XMLHttpRequest();
            request.open(
'
GET
'
, 
'
GetJson.ashx
'
);
            request.onreadystatechange 
=
 
function
() {
                
if
 (request.readyState 
==
 
4
 
&&
 request.status 
==
 
200
) {
                    
var
 objs 
=
 eval(request.responseText);
                    alert(objs.length); 
//
 2
                    alert(objs[
0
].id);  
//
 1
                    alert(objs[
1
].name);
//
 'n_2'
                }
            }
            request.send(
null
);
        }
    
<
/
script>

再添加一個測試按鈕即可以看到效果:

二、XML

JS對XML的解析是基于DOM的,對HTML的DOM熟悉的話,解析XML就沒什么困難了。

注意:在Firefox中,解析器不會忽略空格,所以元素間的空格,F(xiàn)F一樣會認為是一個節(jié)點。
  不過在我們用程序拼接XML的時候,一般不會出現(xiàn)節(jié)點間有空格的情況。

在根目錄下添加一個新的一般處理程序(GetXml.ashx),代碼如下:

在Default.aspx頁面添加以下腳本:

      function
 getXml() {
            
//
 在IE7下測試通過,IE6下必須創(chuàng)建 new ActiveXObject("MSXML2.XMLHTTP.6.0")
            
var
 request 
=
 
new
 XMLHttpRequest();
            request.open(
'
GET
'
, 
'
GetXml.ashx
'
);
            request.onreadystatechange 
=
 
function
() {
                
if
 (request.readyState 
==
 
4
 
&&
 request.status 
==
 
200
) {
                    
var
 xmlDoc 
=
 request.responseXML;
                    
var
 root 
=
 xmlDoc.documentElement;
                    
var
 elements 
=
 root.getElementsByTagName(
"
Person
"
);
                    alert(elements.length); 
//
 2
                    
//
 elements[0].firstChild 引用到第一個Person節(jié)點的Id節(jié)點
                    
//
 elements[0].firstChild.firstChild 引用到Id節(jié)點的文本節(jié)點
                    
//
 因為文本節(jié)點是元素節(jié)點的第一個子節(jié)點
                    alert(elements[
0
].firstChild.firstChild.nodeValue); 
//
 1
                    alert(elements[
1
].lastChild.firstChild.nodeValue);  
//
 'n_2'
                }
            }
            request.send(
null
);
        }

注意到代碼段:var root = xmlDoc.documentElement;

主要是為了消除IE6和其他瀏覽器的兼容問題,在其他瀏覽器下,允許request.responseXML.getElementsByTagName("Person");

添加測試按鈕:

感謝各位的閱讀!關(guān)于“JavaScript如何解析JSON及XML”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


標題名稱:JavaScript如何解析JSON及XML
文章鏈接:http://weahome.cn/article/jscepj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部