Maison  >  Article  >  Java  >  Java convertit les documents XML en données au format json

Java convertit les documents XML en données au format json

小云云
小云云original
2017-12-06 10:01:062870parcourir

Cet article présente principalement des exemples de conversion Java de documents XML en données au format json. J'espère que cela pourra aider tout le monde.

Fonction

Convertir un document XML en données au format JSON

Instructions

Package de dépendances :

1. jdom-2.0.2.jar : paquet d'outils d'analyse XML

2. Boîte à outils JSON haute performance développée par Alibaba

Code source du programme

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());
  }
}

Résultats d'exécution

Texte original 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>

Données au format JSON converties

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

Le contenu ci-dessus est un tutoriel sur la conversion de documents XML en données au format json en Java. J'espère qu'il pourra aider tout le monde.

Tutoriels associés :

Comment convertir un objet en tableau et Json en tableau

Comment lire et analyser des données JSON avec js

Comment obtenir plusieurs données dans un champ de formulaire et les convertir au format json

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn