⑴ 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」}