本文目录一览:
- 1、如何在JS中实现相互转换XML和JSON
- 2、javascript 将xml转换为json对象
- 3、用javascript将json转化成xml,具体json,xml如下
- 4、json和xml的区别
- 5、js对象和json的区别
- 6、json数据格式和xml数据格式的区别和用法是什么?
如何在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)是描述数据保存在文件或记录中的规则。可以是字符形式的文本格式,或二进制数据形式的压缩格式。
字符形式的文本格式占用的存贮空间多但透明度高,二进制数形式的压缩格式占用的存贮空间少但缺少透明度。