中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

如何在JS中實現相互轉換XML和JSON
來源:易賢網 閱讀:1262 次 日期:2016-08-01 14:20:08
溫馨提示:易賢網小編為您整理了“如何在JS中實現相互轉換XML和JSON”,方便廣大網友查閱!

下面先是跟大家分別介紹了JSON與XML以及它們的區別比較,后又分享關于JavaScript實現XML與JSON互轉例子,希望這些例子能給你帶來幫助。

開發中有時候會遇到XML和JSON相互轉換,要求在JS中使用,網上找了好多,竟然每一個好用的,要么缺胳膊少腿,要么詞不達意,太沒天理了,果斷自己實現一個。

JSON與XML的區別比較

1.定義介紹

(1).XML定義

擴展標記語言 (Extensible Markup Language, XML) ,用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML使用DTD(document type definition)文檔類型定義來組織數據;格式統一,跨平臺和語言,早已成為業界公認的標準。

XML是標準通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。

(2).JSON定義

JSON(JavaScript Object Notation)一種輕量級的數據交換格式,具有良好的可讀和便于快速編寫的特性。可在不同平臺之間進行數據交換。JSON采用兼容性很高的、完全獨立于語言文本格式,同時也具備類似于C語言的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)體系的行為。這些特性使JSON成為理想的數據交換語言。

JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一個子集。

2.XML和JSON優缺點

(1).XML的優缺點

<1>.XML的優點

A.格式統一,符合標準;

B.容易與其他系統進行遠程交互,數據共享比較方便。

<2>.XML的缺點

A.XML文件龐大,文件格式復雜,傳輸占帶寬;

B.服務器端和客戶端都需要花費大量代碼來解析XML,導致服務器端和客戶端代碼變得異常復雜且不易維護;

C.客戶端不同瀏覽器之間解析XML的方式不一致,需要重復編寫很多代碼;

D.服務器端和客戶端解析XML花費較多的資源和時間。

(2).JSON的優缺點

<1>.JSON的優點:

A.數據格式比較簡單,易于讀寫,格式都是壓縮的,占用帶寬小;

B.易于解析,客戶端JavaScript可以簡單的通過eval()進行JSON數據的讀取;

C.支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務器端語言,便于服務器端的解析;

D.在PHP世界,已經有PHP-JSON和JSON-PHP出現了,偏于PHP序列化后的程序直接調用,PHP服務器端的對象、數組等能直接生成JSON格式,便于客戶端的訪問提取;

E.因為JSON格式能直接為服務器端代碼使用,大大簡化了服務器端和客戶端的代碼開發量,且完成任務不變,并且易于維護。

<2>.JSON的缺點

A.沒有XML格式這么推廣的深入人心和喜用廣泛,沒有XML那么通用性;

B.JSON格式目前在Web Service中推廣還屬于初級階段。

在Javascript中實現XML和JSON相互轉換

先看調用例子:

代碼如下:

<viewport id="menuPane" layout="border">

    <panel region="center" border="0" layout="border">

        <tbar>

            <toolbar text="XXXX">

                <menu>

                    <text text="11">

                    </text>

                    <text text="22">

                    </text>

                    <text text="33">

                    </text>

                </menu>

            </toolbar>

            <toolbar text="XXXX">

                <menu>

                    <text text="44">

                    </text>

                    <text text="55">

                    </text>

                    <menu>

                        <text text="6 6">

                        </text>

                    </menu>

                    <text text="77">

                    </text>

                </menu>

            </toolbar>

        </tbar>

    </panel>

</viewport>

var xmlParser = new XmlToJson();

var json = xmlParser.parse(xml);

console.log( JSON.stringify(json) );

var jsonParser = new JsonToXml();

var xml = jsonParser.parse(json);

console.log( xml );

XML轉換為JSON:

代碼如下:

function XmlToJson() {

}

XmlToJson.prototype.setXml = function(xml) {

    if(xml && typeof xml == "string") {

        this.xml = document.createElement("div");

        this.xml.innerHTML = xml;

        this.xml = this.xml.getElementsByTagName("*")[0];

    }

    else if(typeof xml == "object"){

        this.xml = xml;

    }

};

XmlToJson.prototype.getXml = function() {

    return this.xml;

};

XmlToJson.prototype.parse = function(xml) {

    this.setXml(xml);

    return this.convert(this.xml);

};

XmlToJson.prototype.convert = function(xml) {

    if (xml.nodeType != 1) {

        return null;

    }

    var obj = {};

    obj.xtype = xml.nodeName.toLowerCase();

    var nodeValue = (xml.textContent || "").replace(/(\r|\n)/g, "").replace(/^\s+|\s+$/g, "");

    if(nodeValue && xml.childNodes.length == 1) {

        obj.text = nodeValue;

    }

    if (xml.attributes.length > 0) {

        for (var j = 0; j < xml.attributes.length; j++) {

            var attribute = xml.attributes.item(j);

            obj[attribute.nodeName] = attribute.nodeValue;

        }

    }

    if (xml.childNodes.length > 0) {

        var items = [];

        for(var i = 0; i < xml.childNodes.length; i++) {

            var node = xml.childNodes.item(i);

            var item = this.convert(node);

            if(item) {

                items.push(item);

            }

        }

        if(items.length > 0) {

            obj.items = items;

        }

    }

    return obj;

};

JSON轉換為XML:

代碼如下:

function JsonToXml() {

 this.result = [];

}

JsonToXml.prototype.spacialChars = ["&","<",">","\"","'"];

JsonToXml.prototype.validChars = ["&","<",">",""","'"];

JsonToXml.prototype.toString = function(){

 return this.result.join("");

};

JsonToXml.prototype.replaceSpecialChar = function(s){

    for(var i=0;i<this.spacialChars.length;i++){

        s=s.replace(new RegExp(this.spacialChars[i],"g"),this.validChars[i]);

    }

    return s;

};

JsonToXml.prototype.appendText = function(s){

    s = this.replaceSpecialChar(s);

    this.result.push(s);

};

JsonToXml.prototype.appendAttr = function(key, value){

    this.result.push(" "+ key +"=\""+ value +"\"");

};

JsonToXml.prototype.appendFlagBeginS = function(s){

 this.result.push("<"+s);

};

JsonToXml.prototype.appendFlagBeginE = function(){

 this.result.push(">");

};

JsonToXml.prototype.appendFlagEnd = function(s){

 this.result.push("</"+s+">");

};

JsonToXml.prototype.parse = function(json){

 this.convert(json);

 return this.toString();

};

JsonToXml.prototype.convert = function(obj) {

 var nodeName = obj.xtype || "item";

 this.appendFlagBeginS(nodeName);

 var arrayMap = {};

 for(var key in obj) {

  var item = obj[key];

  if(key == "xtype") {

   continue;

  }

  if(item.constructor == String) {

   this.appendAttr(key, item);

  }

  if(item.constructor == Array) {

   arrayMap[key] = item;

  }

 }

 this.appendFlagBeginE();

 for(var key in arrayMap) {

  var items = arrayMap[key];

  for(var i=0;i<items.length;i++) {

   this.convert(items[i]);

  }

 }

 this.appendFlagEnd(nodeName);

};

以上就是為大家整理的在Javascript中實現XML和JSON相互轉換,希望本文所述對大家學習javascript有所幫助。

更多信息請查看網絡編程
易賢網手機網站地址:如何在JS中實現相互轉換XML和JSON
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
噜噜噜久久亚洲精品国产品小说| 欧美激情精品久久久久久| 欧美激情第六页| 亚洲欧美春色| 亚洲精选国产| 亚洲区国产区| 亚洲国产日韩欧美在线图片| 国产一区二区三区久久| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品久久久久久久久久三级| 能在线观看的日韩av| 久久久久久国产精品mv| 久久成人羞羞网站| 久久爱www久久做| 欧美一区国产二区| 久久精品免费看| 午夜日韩av| 欧美一区二区三区四区夜夜大片| 亚洲欧美日韩国产成人| 亚洲影院一区| 亚洲欧美精品一区| 久久av红桃一区二区小说| 久久精品道一区二区三区| 久久av资源网站| 噜噜噜躁狠狠躁狠狠精品视频| 欧美二区不卡| 国产精品hd| 国产欧美一区二区三区在线老狼 | 国产精品美女久久| 国产精品久久久久久久久免费 | 狠狠色丁香婷婷综合| 国产亚洲精品aa| 亚洲第一偷拍| 一区二区三区.www| 欧美新色视频| 国产精品综合av一区二区国产馆| 国产婷婷成人久久av免费高清| 狠狠爱综合网| 99综合电影在线视频| 亚洲欧美日韩精品久久久| 久久久国产精品一区| 欧美高清免费| 国产精品腿扒开做爽爽爽挤奶网站| 国语自产精品视频在线看一大j8| 亚洲福利视频在线| 亚洲天堂久久| 久久久久久一区二区| 欧美日韩国产片| 国产视频一区欧美| 亚洲激情av| 欧美一区日韩一区| 欧美另类videos死尸| 国产视频亚洲| 亚洲视频网在线直播| 美女免费视频一区| 国产美女精品视频免费观看| 亚洲黄色三级| 久久精品国产亚洲一区二区三区 | 最新日韩欧美| 亚洲欧美日韩爽爽影院| 女生裸体视频一区二区三区| 国产精品久久久久久久7电影| 亚洲国产mv| 欧美一区二区久久久| 欧美喷水视频| 激情综合色综合久久| 亚洲一区亚洲二区| 欧美激情2020午夜免费观看| 国产视频在线一区二区 | 午夜精品久久久久久久久久久| 久久久久久亚洲精品中文字幕| 欧美午夜不卡| 日韩视频精品在线| 美女网站久久| 黑人一区二区三区四区五区| 亚洲欧美日韩国产一区二区三区 | 国产精品成人一区二区艾草| 国产精品视频观看| 99成人免费视频| 欧美成年人视频| 国产综合色一区二区三区| 亚洲免费一区二区| 欧美日韩综合另类| 亚洲精品日日夜夜| 欧美精品麻豆| 亚洲精品久久久蜜桃| 欧美**人妖| 亚洲黄色av一区| 女生裸体视频一区二区三区| 亚洲国产成人av| 免费看黄裸体一级大秀欧美| 亚洲国产另类久久久精品极度 | 欧美高清视频一区二区三区在线观看| 国产欧美精品xxxx另类| 亚洲欧美日韩在线不卡| 国产精品一卡二卡| 午夜精品成人在线视频| 国产精品亚洲视频| 欧美一区二区三区四区在线观看地址| 国产乱码精品一区二区三区av| 午夜精品国产更新| 国产麻豆一精品一av一免费| 欧美在线一区二区三区| 黄色精品一二区| 欧美激情一区三区| 亚洲网在线观看| 国产精品试看| 久久久久久久999精品视频| 在线播放一区| 欧美日本久久| 午夜精品影院在线观看| 狠狠色伊人亚洲综合网站色| 免费成人av资源网| 正在播放亚洲一区| 国产人久久人人人人爽| 美女网站久久| 亚洲制服少妇| 在线观看一区视频| 欧美破处大片在线视频| 亚洲欧美大片| 在线欧美电影| 国产精品久久久久久久7电影| 久久av一区二区| 亚洲精品日本| 国产无一区二区| 欧美高清视频一区| 亚洲欧美卡通另类91av| 黄网动漫久久久| 亚洲国产电影| 欧美视频在线播放| 久久国产精品久久精品国产| 亚洲欧洲日产国产综合网| 国产精品久久久久一区二区三区共| 欧美一区二区三区四区高清 | 亚洲国产经典视频| 欧美视频在线观看免费| 久久精品免费| 亚洲男人av电影| 亚洲精品国产精品国产自| 国产欧美日韩一区| 欧美日韩中文在线观看| 久久亚洲午夜电影| 亚洲一区久久久| 亚洲精品极品| 在线观看成人av| 国产美女一区二区| 欧美日韩国产成人在线免费| 久久男女视频| 欧美一区日韩一区| 亚洲综合不卡| 一区二区三区高清不卡| 亚洲国产女人aaa毛片在线| 国精产品99永久一区一区| 欧美午夜精品久久久久久孕妇| 老鸭窝毛片一区二区三区| 先锋影音一区二区三区| 亚洲特级片在线| 亚洲精品乱码久久久久久久久 | 亚洲人体大胆视频| 国语对白精品一区二区| 国产精品蜜臀在线观看| 欧美日韩精品伦理作品在线免费观看| 久久综合精品一区| 久久久精品午夜少妇| 午夜影视日本亚洲欧洲精品| 亚洲午夜电影| 亚洲视频一区二区| 99国产一区| 日韩亚洲一区在线播放| 亚洲黄页一区| 亚洲国产日韩欧美在线图片| 在线看国产一区| 激情欧美日韩一区| 激情一区二区三区| 国产专区欧美专区| 国产亚洲欧美激情| 国产亚洲精品aa| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美激情综合网| 蜜桃久久精品一区二区| 久久精品免费播放| 久久国产精品久久精品国产| 久久本道综合色狠狠五月| 久久精品国产欧美激情| 久久精品动漫| 久久精品在线| 久久精品国产久精国产思思| 久久高清国产| 美女黄网久久| 欧美女人交a| 欧美视频国产精品| 国产精品免费网站在线观看| 国产麻豆视频精品| 狠狠色综合播放一区二区| 一区二区三区自拍| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品99久久久久久久女警 | 国产一区二区三区最好精华液| 国产亚洲永久域名| 亚洲高清不卡在线观看|