导航:首页 > 编程语言 > javajsonxml转换

javajsonxml转换

发布时间:2023-01-23 05:25:41

java 用XMLSerializer处理xml转json时,xml节点的属性在转为json后,属性上为有@符号,怎么处理掉@。

@要用replace替换成-减号符,这样在json字符串中能代表属性

⑵ 如何在JS中实现相互转换XML和JSON

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有所帮助。

⑶ 如何将XML文档转换为JSON格式

之所以使用JSON一般是为了跳过XML这个过程,使JAVA类型到客户端的javascript类型可以不需要再解析XML就直接生成.为什么会从XML转换成json?
个人建议是通过Java解析XML,生成JavaBean或者其它类型的java对象,然后使用GSON,将java对象转化成json.GSON是google开发的一个包,小巧而功能强大,可定制性也很强,推荐使用.

⑷ java中使用XMLSerializer将json格式的数据转为xml格式问题

直接用从数据库读出数据变成jsonObject就可以转换成json了干嘛要转啊,也可以
StringBuffer拼接也可以啊

⑸ 【高分求助】java 中 数组格式的 json 怎么转成 xml

首先楼主的json数据有问题。

下面代码亲测,可用,两个文件放在同级目录:

Test.java

publicclassTest{

publicstaticvoidmain(String[]args){
ConvertXMLtoJSON();
StringjStr="{"users":{"user":["
+"{"uid":"1","node_id":"2","children":[{"id":"43","value":"14"},{"id":"44","value":"15"}]},"
+"{"uid":"2","node_id":"2","children":[{"id":"45","value":"11"},{"id":"46","value":"11"},{"id":"47","value":"16"}]},"
+"{"uid":"3","node_id":"2","children":{"id":"48","value":"11"}}]}"
+"}";
System.out.println(jsontoXml(jStr));
}

publicstaticStringjsontoXml(Stringjson){
try{
XMLSerializerserializer=newXMLSerializer();
JSONjsonObject=JSONSerializer.toJSON(json);
returnserializer.write(jsonObject);
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

(){
InputStreamis=Test.class.getResourceAsStream("sample.xml");
Stringxml;
try{
xml=IOUtils.toString(is);
System.out.println(xml);
XMLSerializerxmlSerializer=newXMLSerializer();
JSONjson=xmlSerializer.read(xml);
System.out.println(json.toString(1));
}catch(IOExceptione){
e.printStackTrace();
}
}
}

sample.xml

<?xmlversion="1.0"encoding="utf-8"?>
<o>
<usersclass="object">
<userclass="array">
<eclass="object">
<childrenclass="array">
<eclass="object">
<idtype="string">43</id>
<valuetype="string">14</value>
</e>
<eclass="object">
<idtype="string">44</id>
<valuetype="string">15</value>
</e>
</children>
<node_idtype="string">2</node_id>
<uidtype="string">1</uid>
</e>
<eclass="object">
<childrenclass="array">
<eclass="object">
<idtype="string">45</id>
<valuetype="string">11</value>
</e>
<eclass="object">
<idtype="string">46</id>
<valuetype="string">11</value>
</e>
<eclass="object">
<idtype="string">47</id>
<valuetype="string">16</value>
</e>
</children>
<node_idtype="string">2</node_id>
<uidtype="string">2</uid>
</e>
<eclass="object">
<childrenclass="object">
<idtype="string">48</id>
<valuetype="string">11</value>
</children>
<node_idtype="string">2</node_id>
<uidtype="string">3</uid>
</e>
</user>
</users>
</o>

jar包下载地址参考:http://hanyi366.iteye.com/blog/1162365

⑹ JAVA能把下面的 xml 转化为JSON

用XStream这个类库就可以实现xml ==> java ==> json


不过你这种情况,用类库直接转换还很麻烦,要设置很多东西,还要调试

建议自己写个sax解析器,先把你的xml解析成java对象,再用Gson或用JSONObject或用XStream将对象转换成json

天下没有免费的午餐,5分只能帮你到这了,请采纳哈

⑺ 如何把xml转成json对象,底层代码

使用json-lib的XMLSerializer对象
(1)创建XMLSerializer对象
(2)使用XMLSerializer的read(xml)方法即可

[java] view plain
/* 第二种方法,使用json-lib提供的方法 */
//创建 XMLSerializer对象
XMLSerializer xmlSerializer = new XMLSerializer();
//将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
String result = xmlSerializer.read(xml).toString();
//输出json内容
System.out.println(result);

3.测试

[java] view plain
public class Test {
public static void main(String[] args) {
String xml = "<class id="
+ "'1'"
+ "><student><name>aaaaaa</name><age>21</age></student><student><name>bbbbbb</name><age>22</age></student></class>";

/* 第一种方法,使用JSON-JAVA提供的方法 */
//将xml转为json
JSONObject xmlJSONObj = XML.toJSONObject(xml);
//设置缩进
String jsonPrettyPrintString = xmlJSONObj.toString(4);
//输出格式化后的json
System.out.println(jsonPrettyPrintString);

/* 第二种方法,使用json-lib提供的方法 */
//创建 XMLSerializer对象
XMLSerializer xmlSerializer = new XMLSerializer();
//将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
String result = xmlSerializer.read(xml).toString();
//输出json内容
System.out.println(result);

}

第一种方法输出:

[java] view plain
{"class": {
"id": 1,
"student": [
{
"age": 21,
"name": "aaaaaa"
},
{
"age": 22,
"name": "bbbbbb"
}
]
}}

第二种方法输出:

[java] view plain
{"@id":"1","student":[{"name":"aaaaaa","age":"21"},{"name":"bbbbbb","age":"22"}]}

⑻ java解析json,然后将其转换为xml

需要的依赖:
<dependency>
<groupId>de.odysseus.staxon</groupId>
<artifactId>staxon</artifactId>
<version>1.2</version>
</dependency>
代码:
publicstaticvoidmain(String[]args)throwsException{
//输入json文件
Stringencoding="UTF-8";
FilejsonFile=newFile("C:/Users/Administrator/Desktop/person.json");
LongjsonFilelength=jsonFile.length();
byte[]JsonBytes=newbyte[jsonFilelength.intValue()];
FileInputStreamin=newFileInputStream(jsonFile);
in.read(JsonBytes);
in.close();
Stringjson=newString(JsonBytes,encoding);
//json-->xml
StringReaderinput=newStringReader(json);
StringWriteroutput=newStringWriter();
JsonXMLConfigconfig=newJsonXMLConfigBuilder().multiplePI(false)
.repairingNamespaces(false).build();
XMLEventReaderreader=newJsonXMLInputFactory(config)
.createXMLEventReader(input);
XMLEventWriterwriter=XMLOutputFactory.newInstance()
.createXMLEventWriter(output);
writer=newPrettyXMLEventWriter(writer);
writer.add(reader);
reader.close();
writer.close();
output.close();
input.close();
//输出成xml文件
FilexmlFile=newFile("C:/Users/Administrator/Desktop/person.xml");
PrintWriteroutFile=newPrintWriter(xmlFile);
outFile.write(output.toString());
outFile.flush();
outFile.close();
}

⑼ java json字符串转换xml字符串

java json字符串转成 xml可以用XStream 这个jar来转换, 首先要把json转成java对象, 再转成xml字符串.

⑽ 在java中怎么把xml文件转换成json格式

在java中把xml文件转换成json格式
1、前提需要jar包:
json-lib-2.4-jdk15.jar 和 xom-1.2.5.jar ,maven 仓库:
net.sf.json-lib
json-lib
2.4
jdk15

xom
xom
1.2.5

2、代码部分:
public static JSON xmlToJson(String xml) {
XMLSerializer xmlSerializer = new XMLSerializer();
if(xml!=null && !”“.equals(xml)){
xml = xml.replaceAll(“\r|\n”, “”);
JSON json = xmlSerializer.read(xml);
return json;
}else{
return null;
}

}
public static void main(String[] args) {
String xmlStr = "<parent><id>01</id<name>marry</name</parent>";
JSON json = xmlToJson(xmlStr);
System.out.println(json.toString());

}
3、结果:
{“id”:”01”,”name”:”marry”}

阅读全文

与javajsonxml转换相关的资料

热点内容
centos命令窗口 浏览:596
编译器有几个好用的 浏览:500
数据库和网站如何搭载服务器 浏览:154
网络流理论算法与应用 浏览:795
java和matlab 浏览:388
钉钉苹果怎么下app软件 浏览:832
php网站验证码不显示 浏览:859
铝膜构造柱要设置加密区吗 浏览:344
考驾照怎么找服务器 浏览:884
阿里云服务器如何更换地区 浏览:972
手机app调音器怎么调古筝 浏览:503
锐起无盘系统在服务器上需要设置什么吗 浏览:19
红旗出租车app怎么应聘 浏览:978
如何编写linux程序 浏览:870
吉利车解压 浏览:248
java输入流字符串 浏览:341
安卓软件没网怎么回事 浏览:785
dvd压缩碟怎么导出电脑 浏览:275
冒险岛什么服务器好玩 浏览:543
如何在服务器上做性能测试 浏览:794