旁白:
最近关于xml与json之间的转换都搞蒙了,这里写一个demo,以后备用。
正题:
project格式是:
jar包是一个一个检出来的,还算干净了。
代码:
工具类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package
exercise.xml;
import
net.sf.json.JSON;
import
net.sf.json.JSONSerializer;
import
net.sf.json.xml.XMLSerializer;
import
org.jdom.Document;
public
class
XmlExercise {
/**
* 将xml字符串<STRONG>转换</STRONG>为JSON字符串
*
* @param xmlString
* xml字符串
* @return JSON<STRONG>对象</STRONG>
*/
public
static
String xml2json(String xmlString) {
XMLSerializer xmlSerializer =
new
XMLSerializer();
JSON json = xmlSerializer.read(xmlString);
return
json.toString(
1
);
}
/**
* 将xmlDocument<STRONG>转换</STRONG>为JSON<STRONG>对象</STRONG>
*
* @param xmlDocument
* XML Document
* @return JSON<STRONG>对象</STRONG>
*/
public
static
String xml2json(Document xmlDocument) {
return
xml2json(xmlDocument.toString());
}
/**
* JSON(数组)字符串<STRONG>转换</STRONG>成XML字符串
*
* @param jsonString
* @return
*/
public
static
String json2xml(String jsonString) {
XMLSerializer xmlSerializer =
new
XMLSerializer();
return
xmlSerializer.write(JSONSerializer.toJSON(jsonString));
// return xmlSerializer.write(JSONArray.fromObject(jsonString));//这种方式只支持JSON数组
}
}
|
测试类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package
exercise.xml;
import
net.sf.json.JSONArray;
import
net.sf.json.JSONObject;
public
class
XmlTest
extends
XmlExercise {
public
static
void
main(String[] args) {
JSONObject jsonObject =
new
JSONObject();
jsonObject.put(
"username"
,
"horizon"
);
JSONArray jsonArray =
new
JSONArray();
JSONObject dataJson =
new
JSONObject();
jsonArray.add(jsonObject);
//jsonArray.add(jsonObject);
dataJson.put(
"data"
, jsonArray);
System.out.println(dataJson.toString());
String xml = json2xml(dataJson.toString());
System.out.println(
"xml:"
+ xml);
String str = xml2json(xml);
System.out.println(
"to_json"
+ str);
}
}
|