栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java将XML文档转换成json格式数据的示例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;

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="M201505210848255000.000.5zhuxiaolongzhuxiaolong10123 http://mobaopay.com/callback.do订单";
    JSonObject json=xml2JSON(xml.getBytes());
    System.out.println(json.toJSonString());
  }
}

执行结果

XML原文:



  M20150521084825
  5000.00
  0.5
  xiaolong
  xiaolong1
  0
  123
  http://mobaopay.com/callback.do
  订单

转换后的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"
    ]
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号