最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java將XML文檔轉(zhuǎn)換成json格式數(shù)據(jù)的示例

 更新時(shí)間:2017年12月05日 16:45:08   作者:zhchoutai  
本篇文章主要介紹了java將XML文檔轉(zhuǎn)換成json格式數(shù)據(jù)的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

本文介紹了java將XML文檔轉(zhuǎn)換成json格式數(shù)據(jù)的示例,分享給大家,具體如下:

功能

將xml文檔轉(zhuǎn)換成json格式數(shù)據(jù)

說(shuō)明

依賴(lài)包:

1. jdom-2.0.2.jar : xml解析工具包;

2. fastjson-1.1.36.jar : 阿里巴巴研發(fā)的高性能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());
  }
}

執(zhí)行結(jié)果

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>

轉(zhuǎn)換后的json格式數(shù)據(jù)

{
  "MoBaoAccount": {
    "Commission": [
      "0.5"
    ],
    "CustParam": [
      "123"
    ],
    "MerchID": [
      "zhuxiaolong1"
    ],
    "NotifyUrl": [
      "http://mobaopay.com/callback.do"
    ],
    "OrderNo": [
      "M20150521084825"
    ],
    "TradeAmt": [
      "5000.00"
    ],
    "TradeSummary": [
      "訂單"
    ],
    "UserID": [
      "zhuxiaolong"
    ],
    "tradeType": [
      "0"
    ]
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析

    關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析

    這篇文章主要介紹了關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springboot整合Shiro的步驟

    springboot整合Shiro的步驟

    這篇文章主要介紹了springboot整合Shiro的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Redisson公平鎖的源碼解讀分享

    Redisson公平鎖的源碼解讀分享

    Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory?Data?Grid)。這篇文章主要通過(guò)源碼和大家聊聊Redisson公平鎖,需要的可以了解一下
    2022-11-11
  • java多線程之鐵路售票系統(tǒng)

    java多線程之鐵路售票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java多線程之鐵路售票系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    本文主要介紹了Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java并發(fā)編程示例(二):獲取和設(shè)置線程信息

    Java并發(fā)編程示例(二):獲取和設(shè)置線程信息

    這篇文章主要介紹了Java并發(fā)編程示例(二):獲取和設(shè)置線程信息,本文是系列文章的第二篇,本文著重講解Thread類(lèi)的幾個(gè)重要屬性,需要的朋友可以參考下
    2014-12-12
  • java:無(wú)法訪問(wèn)org.springframework.boot.SpringApplication

    java:無(wú)法訪問(wèn)org.springframework.boot.SpringApplication

    本文主要介紹了java:無(wú)法訪問(wèn)org.springframework.boot.SpringApplication,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Spring?BOOT?AOP基礎(chǔ)應(yīng)用教程

    Spring?BOOT?AOP基礎(chǔ)應(yīng)用教程

    這篇文章主要介紹了Spring?BOOT?AOP的使用,文章從相關(guān)問(wèn)題展開(kāi)全文內(nèi)容詳情,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Java中的運(yùn)算符有哪些詳解

    Java中的運(yùn)算符有哪些詳解

    這篇文章主要給大家介紹了關(guān)于Java中運(yùn)算符有哪些的相關(guān)資料,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、增量運(yùn)算符和自增/自減運(yùn)算符,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • 關(guān)于Java大整數(shù)運(yùn)算之BigInteger類(lèi)

    關(guān)于Java大整數(shù)運(yùn)算之BigInteger類(lèi)

    這篇文章主要介紹了關(guān)于Java大整數(shù)運(yùn)算之BigInteger類(lèi),BigInteger提供高精度整型數(shù)據(jù)類(lèi)型及相關(guān)操作,所有操作中,都以二進(jìn)制補(bǔ)碼形式表示,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

桂林市| 诸城市| 祁门县| 贵港市| 句容市| 宜兰县| 竹溪县| 台安县| 江津市| 阿尔山市| 丹巴县| 河津市| 建瓯市| 景泰县| 泰和县| 湖南省| 靖宇县| 疏附县| 固阳县| 临湘市| 交口县| 乐平市| 武冈市| 故城县| 资兴市| 陵川县| 新源县| 皮山县| 子洲县| 桐柏县| 根河市| 金阳县| 莱西市| 屏南县| 海门市| 龙游县| 平泉县| 防城港市| 普兰店市| 绵竹市| 称多县|