首頁 > Java > java教程 > 主體

java將XML文件轉換成json格式數據

小云云
發布: 2017-12-06 10:01:06
原創
2868 人瀏覽過

本篇文章主要介紹了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格式數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板