300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > xml 文本转json java_java将XML文档转换成json格式数据

xml 文本转json java_java将XML文档转换成json格式数据

时间:2020-01-25 12:47:43

相关推荐

xml 文本转json java_java将XML文档转换成json格式数据

本篇文章主要介绍了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@ on /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\" ?>M05210848255000.000.5zhuxiaolongzhuxiaolong10123/callback.do订单";

JSONObject json=xml2JSON(xml.getBytes());

System.out.println(json.toJSONString());

}

}

执行结果

XML原文:

M0521084825

5000.00

0.5

xiaolong

xiaolong1

0

123

/callback.do

订单

转换后的json格式数据

{

"MoBaoAccount": {

"Commission": [

"0.5"

],

"CustParam": [

"123"

],

"MerchID": [

"zhuxiaolong1"

],

"NotifyUrl": [

"/callback.do"

],

"OrderNo": [

"M0521084825"

],

"TradeAmt": [

"5000.00"

],

"TradeSummary": [

"订单"

],

"UserID": [

"zhuxiaolong"

],

"tradeType": [

"0"

]

}

}

以上内容就是java将XML文档转换成json格式数据教程,希望能帮助到大家。

相关教程:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。