本篇文章主要介绍了java将xml文档转换成json格式数据的示例,希望能帮助到大家。
功能
将xml文档转换成json格式数据
说明
依赖包:
1. jdom-2.0.2.jar : xml解析工具包;
2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包
程序源代码
package com.xxx.open.pay.util;
import com.alibaba.fastjson.jsonobject;
import org.jdom2.element;
import org.jdom2.jdomexception;
import org.jdom2.input.saxbuilder;
import java.io.bytearrayinputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.util.linkedlist;
import java.util.list;
/**
* created by 1250052380@qq.com on 2015/5/19.
*/
public class xmlutil {
public static jsonobject xml2json(byte[] xml) throws jdomexception, ioexception {
jsonobject json = new jsonobject();
inputstream is = new bytearrayinputstream(xml);
saxbuilder sb = new saxbuilder();
org.jdom2.document doc = sb.build(is);
element root = doc.getrootelement();
json.put(root.getname(), iterateelement(root));
return json;
}
private static jsonobject iterateelement(element element) {
list node = element.getchildren();
element et = null;
jsonobject obj = new jsonobject();
list list = null;
for (int i = 0; i < node.size(); i++) {
list = new linkedlist();
et = (element) node.get(i);
if (et.gettexttrim().equals("")) {
if (et.getchildren().size() == 0)
continue;
if (obj.containskey(et.getname())) {
list = (list) obj.get(et.getname());
}
list.add(iterateelement(et));
obj.put(et.getname(), list);
} else {
if (obj.containskey(et.getname())) {
list = (list) obj.get(et.getname());
}
list.add(et.gettexttrim());
obj.put(et.getname(), list);
}
}
return obj;
}
public static void main(string[] args) throws jdomexception, ioexception {
string xml="<?xml version=\"1.0\" encoding=\"utf-8\" ?><mobaoaccount messagetype=\"usermobilepay\" platformid=\"b2ctest\"><orderno>m20150521084825</orderno><tradeamt>5000.00</tradeamt><commission>0.5</commission><userid>zhuxiaolong</userid><merchid>zhuxiaolong1</merchid><tradetype>0</tradetype><custparam>123</custparam> <notifyurl>http://mobaopay.com/callback.do</notifyurl><tradesummary>订单</tradesummary></mobaoaccount>";
jsonobject json=xml2json(xml.getbytes());
system.out.println(json.tojsonstring());
}
}
执行结果
xml原文:
<?xml version="1.0" encoding="utf-8" ?>
<mobaoaccount messagetype="usermobilepay" platformid="b2ctest">
<orderno>m20150521084825</orderno>
<tradeamt>5000.00</tradeamt>
<commission>0.5</commission>
<userid>xiaolong</userid>
<merchid>xiaolong1</merchid>
<tradetype>0</tradetype>
<custparam>123</custparam>
<notifyurl>http://mobaopay.com/callback.do</notifyurl>
<tradesummary>订单</tradesummary>
</mobaoaccount>
转换后的json格式数据
{
"mobaoaccount": {
"commission": [
"0.5"
],
"custparam": [
"123"
],
"merchid": [
"zhuxiaolong1"
],
"notifyurl": [
"http://mobaopay.com/callback.do"
],
"orderno": [
"m20150521084825"
],
"tradeamt": [
"5000.00"
],
"tradesummary": [
"订单"
],
"userid": [
"zhuxiaolong"
],
"tradetype": [
"0"
]
}
}
以上内容就是java将xml文档转换成json格式数据教程,希望能帮助到大家。
相关教程:
object转array json转array的方法
js读取和解析json数据的方法
获取一个表单字段中多条数据并转化为json格式的方法
以上就是java将xml文档转换成json格式数据的详细内容。
