Este artículo presenta un ejemplo de Java que convierte los documentos XML en datos de formato JSON. Se comparte contigo. Los detalles son los siguientes:
Función
Convertir documentos XML en datos de formato JSON
ilustrar
Paquete de dependencia:
1. JDOM-2.0.2.JAR: XML Parsing Toolkit;
2. Fastjson-1.1.36.Jar: un kit de herramientas JSON de alto rendimiento desarrollado por Alibaba
Código fuente del programa
paquete com.xxx.open.pay.util; import com.alibaba.fastjson.jsonObject; import org.jdom2.element; importar org.jdom2.jdomexception; import og.jdom2.input.saxBuilder; import java.io.byTearrayInputStream; import java.io.io.ioexception; importar jaVa.iO.IO.InputSaM java.util.linkedlist; import java.util.list;/*** Creado por [email protected] en 2015/5/19. */public class xmlutil {public static jsonObject xml2json (byte [] xml) lanza jdomexception, ioexception {jsonObject json = new jsonObject (); InputStream es = new ByteArrayInputStream (XML); SaxBuilder sb = new SaxBuilder (); org.jdom2.document doc = sb.build (is); Elemento root = doc.getRootElement (); json.put (root.getName (), iterateElement (root)); regresar json; } private static jsonObject iterateElement (elemento elemento) {list node = element.getChildren (); Elemento et = nulo; JsonObject obj = new JsonObject (); List list = null; for (int i = 0; i <node.size (); i ++) {list = new LinkedList (); et = (elemento) node.get (i); if (et.gettexttrim (). igual ("")) {if (et.getChildren (). size () == 0) continuar; 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.getteTttrim ()); obj.put (et.getName (), list); }} return obj; } public static void main (string [] args) lanza JDomException, ioException {String xml = "<? Xml versión =/" 1.0/"coding =/" utf-8/"?> <mobaoaccount messageType =/" usermobilepay/" PlatformID =/"B2Ctest/"> <Orderno> M20150521084825 </ordonno> <dreadeamt> 5000.00 </dreadeamt> <solision> 0.5 </solision> <seronid> zhuxiaolong </seronid> <serchid> zhuxiaolong1 </merchid> <dorTetype> <NotifyUrl> http://mobaopay.com/callback.do </notifyurl> <Tradesummary> Order </Tradesummary> </mobaoaccount> "; JSONObject json = xml2json (xml.getBytes ()); System.out.println (json.tojsonstring ()); }}
Resultados de la ejecución
XML Texto original:
<? xml versión = "1.0" encoding = "utf-8"?> <mobaoaccount messageType = "usermobilepay" plataforma = "b2ctest"> <ordenno> m20150521084825 </ordenno> <Tradeamt> 5000.00 </dreadeamt> <sision> 0.5 </sermisiD> xiaolong </useriD> <Merchid> Xiaolong1 </cherchid> <DRADETYPE> 0 </dertype> <custparam> 123 </custparam> <notifyurl> http://mobaopay.com/callback.do </notifyurl> <Tradesummary> pedido </dreadesummary> </mobaoCount>
Datos de formato JSON convertidos
{ "MoBaoAccount": { "Commission": [ "0.5" ], "CustParam": [ "123" ], "MerchID": [ "zhuxiaolong1" ], "NotifyUrl": [ "http://mobaopay.com/callback.do" ], "OrderNo": [ "M20150521084825" ], "TradeAmt": [ "5000.00"], "Tradesummary": ["Orden"], "UserId": ["Zhuxiaolong"], "TradeType": ["0"]}}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.