Java 项目 JSON 转 XML(By fastjson)
Posted Calvin Chan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 项目 JSON 转 XML(By fastjson)相关的知识,希望对你有一定的参考价值。
Java 项目 JSON 转 XML(By fastjson)
package com.test;
import java.util.Iterator;
import java.util.Map.Entry;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonToXml {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String jsonstr = "{\\"A\\":{\\"B\\":{\\"C\\":{\\"PUUID\\":\\"9e5a2bcc26b74e829ecf7d7a244b851a\\",\\"E\\":[{\\"aa\\":\\"3ee2eac7281948858842d593f8f2c7ad\\",\\"hh\\":\\"18533446798\\",\\"ff\\":\\"\\",\\"gg\\":\\"N\\",\\"dd\\":\\"F\\",\\"bb\\":\\"f4eae0f34a5c4d1f93692aa19b3bf189\\",\\"ee\\":\\"\\",\\"bb\\":\\"y\\",\\"cc\\":\\"123456\\"},{\\"aa\\":\\"cd3008dbdf4b4205adbbb0f391e97904\\",\\"hh\\":\\"18533446799\\",\\"ff\\":\\"aa\\",\\"gg\\":\\"N\\",\\"dd\\":\\"F\\",\\"UUID\\":\\"7e037286fc484a06bd7243fe0cbd0889\\",\\"ee\\":\\"\\",\\"bb\\":\\"z\\",\\"cc\\":\\"456789\\"}]}}}}";
System.out.println("json to xml: " + executeJsonToXml(JSONObject.parseObject(jsonstr)));
}
public static String jsontoxml(JSONObject jo, String gt) {
StringBuffer xmlStr = new StringBuffer();
Iterator<Entry<String, Object>> iter = jo.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, Object> entry = (Entry<String, Object>) iter.next();
String key = entry.getKey().toString();
String val = entry.getValue().toString();
// System.out.println("key: " + key);
// System.out.println("val: " + val);
//值非空
if (!isStringNull(val)) {
//JSON对象
if (val.substring(0, 1).equals("{")) {
xmlStr.append(gt);
xmlStr.append("<");
xmlStr.append(key);
xmlStr.append(">\\n");
xmlStr.append(jsontoxml(JSONObject.parseObject(val), gt + "\\t"));
xmlStr.append(gt);
xmlStr.append("</");
xmlStr.append(key);
xmlStr.append(">\\n");
}
//JSON数组
else if (val.substring(0, 1).equals("[")) {
JSONArray ja = JSONArray.parseArray(val);
for (int i = 0; i < ja.size(); i++) {
JSONObject jo2 = new JSONObject();
jo2.put(key, ja.getJSONObject(i));
xmlStr.append(jsontoxml(jo2, gt + "\\t"));
}
}
//JSON值
else {
xmlStr.append(gt);
xmlStr.append("<");
xmlStr.append(key);
xmlStr.append(">");
xmlStr.append(val);
xmlStr.append("</");
xmlStr.append(key);
xmlStr.append(">\\n");
}
}
//值为空
else{
xmlStr.append(gt);
xmlStr.append("<");
xmlStr.append(key);
xmlStr.append(">");
xmlStr.append("");
xmlStr.append("</");
xmlStr.append(key);
xmlStr.append(">\\n");
}
}
return xmlStr.toString();
}
public static String executeJsonToXml(JSONObject jo0) {
String xml = jsontoxml(jo0, "");
return xml;
}
// 判断字符串是否为空
public static boolean isStringNull(String str) {
if (str == null || str.isEmpty() || str.length() == 0 || "".equals(str)) {
return true;
}
return false;
}
}
测试 JSON
{
"A": {
"B": {
"C": {
"PUUID": "9e5a2bcc26b74e829ecf7d7a244b851a",
"E": [
{
"aa": "3ee2eac7281948858842d593f8f2c7ad",
"hh": "18533446798",
"ff": "",
"gg": "N",
"dd": "F",
"bb": "y",
"ee": "",
"cc": "123456"
},
{
"aa": "cd3008dbdf4b4205adbbb0f391e97904",
"hh": "18533446799",
"ff": "aa",
"gg": "N",
"dd": "F",
"UUID": "7e037286fc484a06bd7243fe0cbd0889",
"ee": "",
"bb": "z",
"cc": "456789"
}
]
}
}
}
}
输出 XML
<A>
<B>
<C>
<PUUID>9e5a2bcc26b74e829ecf7d7a244b851a</PUUID>
<E>
<aa>3ee2eac7281948858842d593f8f2c7ad</aa>
<hh>18533446798</hh>
<ff></ff>
<gg>N</gg>
<dd>F</dd>
<bb>y</bb>
<ee></ee>
<cc>123456</cc>
</E>
<E>
<aa>cd3008dbdf4b4205adbbb0f391e97904</aa>
<hh>18533446799</hh>
<ff>aa</ff>
<gg>N</gg>
<dd>F</dd>
<ee></ee>
<bb>z</bb>
<cc>456789</cc>
<UUID>7e037286fc484a06bd7243fe0cbd0889</UUID>
</E>
</C>
</B>
</A>
在线代码格式化网站:
以上是关于Java 项目 JSON 转 XML(By fastjson)的主要内容,如果未能解决你的问题,请参考以下文章