Cet article présente un exemple de documents XML convertissant Java en données de format JSON. Il est partagé avec vous. Les détails sont les suivants:
Fonction
Convertir les documents XML en données de format JSON
illustrer
Package de dépendance:
1. JDom-2.0.2.jar: boîte à outils d'analyse XML;
2. Fastjson-1.1.36.jar: une 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.in java.util.linkedlist; import java.util.list; / ** * créé par [email protected] le 2015/5/19. * / public class xmlutil {public static jsonObject xml2json (byte [] xml) lève jDomexception, ioException {jsonObject JSON = new JSONObject (); InputStream est = new bytearrayInputStream (xml); SAXBUILDER SB = NOUVEAU SAXBUILDER (); org.jdom2.Document doc = sb.build (is); Élément root = doc.getrootelement (); JSON.PUT (root.getName (), IterateElement (root)); retourner JSON; } private static jsonObject IterateElement (élément élément) {list node = element.getChildren (); Élément et = null; JsonObject obj = new JSONObject (); List list = null; pour (int i = 0; i <node.size (); i ++) {list = new LinkedList (); et = (élément) 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) lève jDomexception, ioException {String xml = "<? xml version = /" 1.0 / "Encoding = /" utf-8 / "?> <MobaoAccount MessageType = /" UsermobilePay / " PlatformId = / "B2CTEST /"> <OrderNo> M20150521084825 </DORDNO> <RADEAMT> 5000.00 </TATERDEAMT> <COMANCE> 0,5 </ Commissio N> <DutilisId> Zhuxiaolong </DERSIDID> <MERCHID> ZHUXIAOLONG1 </RERCHID> <ATTADETYPE> 0 </DATRADETYPE> <CUSTPARAM> 123 </sustparam> <sodifyUrl> http://mobaopay.com/callback.do </ notifyurl> <taddesummary> commander </radesummary> </obaoaccount> "; JSONObject JSON = xml2json (xml.getBytes ()); System.out.println (json.tojSontring ()); }}
Résultats de l'exécution
Texte d'origine XML:
<? xml version = "1.0" coding = "utf-8"?> <mobaoAccount MessageType = "UserMobilePay" PlatformId = "B2CTEST"> <OrderNo> M20150521084825 </ OrderNo> <TradeAmT> 5000.00 </ TRADEAMT> <Merchid> Xiaolong1 </rserChid> <RADETYTYPE> 0 </ TradeType> <CustParam> 123 </custParam> <otifyfyurl> http://mobaopay.com/callback.do </sotifyfyurl> <tradesummary> commande </radesummary> </ mobaoCcount>
Données de format JSON converti
{"MobaoAccount": {"Commission": ["0,5"], "Custparam": ["123"], "Merchid": ["zhuxiaolong1"], "notifyurl": ["http://mobaopay.com/callback.do"], "Orderno": ["M20150521084825"], "TradeMt": ["M20150521084825" "5000.00"], "Tradesummary": ["Order"], "UserId": ["Zhuxiaolong"], "TradeType": ["0"]}}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.