關於javascript和jsonxml的信息

本文目錄一覽:

如何在JS中實現相互轉換XML和JSON

在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;ithis.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;iitems.length;i++) {

this.convert(items[i]);

}

}

this.appendFlagEnd(nodeName);

};

javascript 將xml轉換為json對象

代碼如下:

// Changes XML to JSON

function xmlToJson(xml) {

    // Create the return object

    var obj = {};

    if (xml.nodeType == 1) { // element

        // do attributes

        if (xml.attributes.length  0) {

        obj[“@attributes”] = {};

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

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

                obj[“@attributes”][attribute.nodeName] = attribute.nodeValue;

            }

        }

    } else if (xml.nodeType == 3) { // text

        obj = xml.nodeValue;

    }

    // do children

    if (xml.hasChildNodes()) {

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

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

            var nodeName = item.nodeName;

            if (typeof(obj[nodeName]) == “undefined”) {

                obj[nodeName] = xmlToJson(item);

            } else {

                if (typeof(obj[nodeName].length) == “undefined”) {

                    var old = obj[nodeName];

                    obj[nodeName] = [];

                    obj[nodeName].push(old);

                }

                obj[nodeName].push(xmlToJson(item));

            }

        }

    }

    return obj;

};

用javascript將json轉化成xml,具體json,xml如下

// 針對你的業務寫的,試試看

function json2xml(obj) {

    return _json2xml(‘xml’, obj).replace(‘xml’, ‘?xml version=”1.0″ encoding=”UTF-8″ ?’);

    function _json2xml(key, obj) {

        var xml = ”;

        if (Array.isArray(obj)) {

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

                xml += _json2xml(key, obj[i]);

            }

            return xml;

        } else if (typeof obj === ‘object’) {

            for (var _key in obj) {

                xml += _json2xml(_key, obj[_key]);

            }

            return _concat(key, xml);

        } else {

            return _concat(key, obj);

        }

    }

    function _concat(key, item) {

        return ” + key + ” + item + ‘/’ + key + ”;

    }

}

json和xml的區別

JOSN:JSON是結構化數據串列化的文本格式。它衍生自Javascript的對象實字,這定義在ECMAScript語言標準第三版中。JSON能夠描述四種簡單的類型(字元串、數字、布爾值及null)和兩種結構化類型(對象及數組)。字元串(string)是零個或多個Unicode字元的序列。對象(object)是無次序的零個或多個名/值(name/value)對的集合,這裡的name是string類型,value則可以是string、number、boolean、null、object或array類型。數組(array)是零個或多個value的有序序列。”object”和”array”這兩個術語來自JavaScript規範。JSON的設計目標是使它成為小的、輕便的、文本的,而且是JavaScript的一個子集。

XML:XML是EXtensible

Markup

Language的縮寫

XML是一種類似於HTML的標記語言

XML是用來描述數據的

XML的標記不是在XML中預定義的,你必須定義自己的標記

XML使用文檔類型定義(DTD)或者模式(Schema)來描述數據

XML使用DTD或者Schema後就是自描述的語言

XML是用來存放數據的

XML不是HTML的替代品,XML和HTML是兩種不同用途的語言。

HTML是與顯示信息相關的,

XML則是與描述信息相關的。

「XML」是用於網路上數據交換的語言,具有與描述Web頁面的「HTML」語言相似的格式。該語言有「可以利用Web瀏覽器進行數據確認」以及「易於生成數據」等優點,因此主要用於在企業之間,或者在企業內部更加方便地進行數據交換和利用。首先為了便於理解,下面假設有這麼一種情況:某圖書銷售商要著手建立自己的站點,並發送書店裡的品種目錄和庫存情況等信息。

然而,「XML」則正是能夠讓計算機也理解這些數據屬性的技術。

如果使用XML,比如「庫存目前有多少?」以及「某個作家寫的書賣了多少冊?」等數據就能夠由計算機「自動地」掌握,並能夠將這些數據與交易對象「共享」。這樣一來,出版社就能夠在制定今後的出版計劃時參考這些數據,而且銷售公司制定有效的配送計劃時也將更加容易。這就必定大大有助於削減人事成本,以及提高管理效率。

當然,即便不使用XML,比如,如果能夠建立一個規範的資料庫,並為每個欄位定義一個「書名」和「定價」等名稱,計算機也能夠理解。但是要想在Web上實現這一點,卻要花費相當的人力和成本。在這一點上,如果是XML,由於「能夠利用Web瀏覽器對數據進行確認「,因此只要擁有能夠連接網際網路的計算機和支持XML的瀏覽器,就不需再進行特別的投資。

使用XML,還能夠將在以前的資料庫中難以處理的數據轉化成資料庫。

XML的描述方式與HTML相同,利用被括弧括起來的字元串進行描述。在HTML中,括弧內所定義的都是版面(Layout)等信息。而XML則同時定義了數據的屬性,比如剛才提到的圖書,就是以、和等方式定義。像這樣的定義方式可以自由設置。因此,甚至有不少企業自己定義XML,然後將其用於本公司內部的數據交換。自由度如此之高也是XML受到極大關注的原因之一。

但是,企業之間的數據交換才是XML的著眼點之一。因此,各公司的定義如果不規範化就無法通用。目前,以微軟為主的標準化團體「Biztalk.org」和民間團體「Rosetta

Net」等都希望能針對各行業和領域制定「可以廣泛利用的標誌」,以減少定義XML的麻煩。

這一點在管理方面也可以說是一個巨大的可取之處

js對象和json的區別

JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。 JSON 是 JavaScript 原生格式,這意味著在JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。JSON的規則很簡單: 對象是一個無序的「名稱/值」對集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「名稱/值」對之間使用「,」(逗號)分隔。

它是一種嚴格的js對象的格式,JSON的屬性名必須有雙引號,如果值是字元串,也必須是雙引號;

JSON只是一種數據格式(或者叫數據形式);

scriptvar obj2={};//這只是JS對象var obj3={width:100,height:200};/*這跟JSON就更不沾邊了,只是JS的 對象 */var obj4={‘width’:100,’height’:200};/*這跟JSON就更不沾邊了,只是JS的對象 */var obj5={“width”:100,”height”:200,”name”:”rose”}; /*我們可以把這個稱做:JSON格式的JavaScript對象 */var str1='{“width”:100,”height”:200,”name”:”rose”}’;/*我們可以把這個稱做:JSON格式的字元串 */var a=[ {“width”:100,”height”:200,”name”:”rose”}, {“width”:100,”height”:200,”name”:”rose”}, {“width”:100,”height”:200,”name”:”rose”}, ]; /*這個叫JSON格式的數組,是JSON的稍複雜一點的形式 */var str2='[‘+ ‘{“width”:100,”height”:200,”name”:”rose”},’+ ‘{“width”:100,”height”:200,”name”:”rose”},’+ ‘{“width”:100,”height”:200,”name”:”rose”},’+ ‘]’ ; /* 這個叫稍複雜一點的JSON格式的字元串 *//script

JSON和JS對象區別對比表

json數據格式和xml數據格式的區別和用法是什麼?

JSON與XML的區別:

1 、可讀性。JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規範的標籤形式,很難分出勝負。

2、可擴展性。XML天生有很好的擴展性,JSON當然也有,沒有什麼是XML能擴展,JSON不能的。不過JSON在Javascript主場作戰,可以存儲Javascript複合對象,有著xml不可比擬的優勢。

3、編碼難度。XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發人員一樣能很快的寫出想要的xml文檔和JSON字元串,不過,xml文檔要多很多結構上的字元。

用法:JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫,同時也易於機器解析和生成。XML可以做為一個公共的標準格式為不同格式之間提供統一介面。

數據格式(data format)是描述數據保存在文件或記錄中的規則。可以是字元形式的文本格式,或二進位數據形式的壓縮格式。

字元形式的文本格式佔用的存貯空間多但透明度高,二進位數形式的壓縮格式佔用的存貯空間少但缺少透明度。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303230.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-31 11:49
下一篇 2024-12-31 11:49

相關推薦

  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 使用JavaScript日期函數掌握時間

    在本文中,我們將深入探討JavaScript日期函數,並且從多個視角介紹其應用方法和重要性。 一、日期的基本表示與獲取 在JavaScript中,使用Date對象來表示日期和時間,…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • JavaScript中使用new Date轉換為YYYYMMDD格式

    在JavaScript中,我們通常會使用Date對象來表示日期和時間。當我們需要在網站上顯示日期時,很多情況下需要將Date對象轉換成YYYYMMDD格式的字元串。下面我們來詳細了…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27

發表回復

登錄後才能評論