В этой статье представлен пример конвертации Java XML -документов в данные формата JSON. Это совместно с вами. Детали следующие:
Функция
Преобразовать документы XML в данные формата JSON
иллюстрировать
Пакет зависимости:
1. JDOM-2.0.2.jar: XML-инструментарий
2. Fastjson-1.1.36.jar: высокопроизводительный инструментарий JSON, разработанный Alibaba
Исходный код программы
пакет com.xxx.open.pay.util; import com.alibaba.fastjson.jsonobject; импорт org.jdom2.element; импорт org.jdom2.jdomexception; импорт org.jdom2.input.saxbuilder; importa.io.bytearrayinptream; Import.ioexception; java.util.linkedlist; import java.util.list;/*** Создан [email protected] на 2015/5/19. */public class xmlutil {public static jsonObject xml2json (byte [] xml) бросает jdomexception, ioexception {jsonobject json = new jsonObject (); InputStream IS = New BytearRayinputStream (XML); SaxBuilder SB = новый SaxBuilder (); org.jdom2.document doc = sb.build (is); Элемент root = doc.getRootelement (); json.put (root.getname (), itaterelement (root)); вернуть json; } private static jsonObject itatereElement (элемент элемента) {list node = element.getChildren (); Элемент et = null; JsonObject obj = new jsonObject (); Список списка = 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) продолжить; if (obj.containskey (et.getName ())) {list = (list) obj.get (et.getName ()); } list.add (itaterelement (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); }} вернуть obj; } public static void main (string [] args) throws jdomexception, ioexception {string xml = "<? xml version =/" 1.0/"eNcoding =/" utf-8/"?> <mobaoaccount messageType =/" usermobilepay/"?> <mobaoaccount messagetype =/" usermobilepay/"? Plateriad =/"b2ctest/"> <orderno> M20150521084825 </orderno> <dradeamt> 5000,00 </tradeamt> <command> 0,5 </commissio N> <SOMENTID> ZhuxiaOlong </userId> <merchid> Zhuxiaolong1 </merchid> <dradetype> 0 </tradetype> <custparam> 123 </custparam> <fotifyurl> http://mobaopay.com/callback.do </notifyurl> <dradesummary> Заказ </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> <dradeamt> 5000.00 </tradeamt> <comment> 0.5 </commissent> <someriD> </commission> </commisse> </commission> </commission> </commisse> </commission> </commission> </commission> </commission> </commissent> </commission> </commission> </userno> <dradeamt> <merchid> xiaolong1 </merchid> <dradetype> 0 </tradetype> <custparam> 123 </custparam> <fotifyurl> http://mobaopay.com/callback.do </notifyurl> <dradesummary> Заказ </tradesumary>
Преобразованные данные формата JSON
{"MobaoAccount": {"Комиссия": ["0,5"], "custParam": ["123"], "Merchid": ["Zhuxiaolong1"], "notifyUrl": ["http://mobaopay.com/callback.do"], "Orderno": ["M20150511111111" "]"] ":" ["M20150548484846" "]"? "5000.00"], "tradesummary": ["order"], "userId": ["Zhuxiaolong"], "tradetype": ["0"]}}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.