JAVA工具方法 —— JSON转XML 和 XML转JSON
生活随笔
收集整理的這篇文章主要介紹了
JAVA工具方法 —— JSON转XML 和 XML转JSON
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
這陣子一直在做一個(gè)三方支付,數(shù)據(jù)傳遞用的都是xml 但是在項(xiàng)目里都是用的json,沒(méi)辦法 研究了下json和xml互轉(zhuǎn)的方法 這里做下記錄。
?1. json轉(zhuǎn)xml 相對(duì)簡(jiǎn)單些 用遞歸即可實(shí)現(xiàn)
/*** Map or JSON 轉(zhuǎn)換成Xml** fastJSON實(shí)現(xiàn)了Map<String,Object> 所以此處直接傳json 也可以的*/public static String mapToXMLTest2(Map map, StringBuffer sb) {Set set = map.keySet();for (Iterator it = set.iterator(); it.hasNext(); ) {String key = (String) it.next();Object value = map.get(key);if (null == value)value = "";if (value.getClass().getName().equals("java.util.ArrayList")) {LinkedList list = (LinkedList) map.get(key);sb.append("<" + key + ">");for (int i = 0; i < list.size(); i++) {HashMap hm = (HashMap) list.get(i);mapToXMLTest2(hm, sb);}sb.append("</" + key + ">");} else {if (value instanceof HashMap) {sb.append("<" + key + ">");mapToXMLTest2((HashMap) value, sb);sb.append("</" + key + ">");} else {sb.append("<" + key + ">" + value + "</" + key + ">");}}}return sb.toString();}2. xml字符串 轉(zhuǎn)JSON
? ? xml轉(zhuǎn)JON 需要借助 jackSon的 fastxml包來(lái)實(shí)現(xiàn)
<!-- fasterxml --><dependency><groupId>com.fasterxml</groupId><artifactId>jackson-xml-databind</artifactId><version>0.6.2</version></dependency> /*** xml 轉(zhuǎn)json*/public static JSONObject convertXmlToJson(String xml) throws IOException {XmlMapper xmlMapper = new XmlMapper();JSONObject param = xmlMapper.readValue(xml, JSONObject.class);return param;}利用XmlMapper這個(gè)類, 簡(jiǎn)單兩段代碼就可以搞定 但是該方法有個(gè)缺點(diǎn), 如果你的xml字符串轉(zhuǎn)換的內(nèi)容里 有數(shù)組的情況下, 直接這樣轉(zhuǎn)是不行的。 這種情況就要自己建立相應(yīng)的實(shí)體類來(lái)做接收。 注:實(shí)體要有相應(yīng)的getset方法, 并要保證和xml中的字段名一一對(duì)應(yīng)。
轉(zhuǎn)載于:https://my.oschina.net/danjuan/blog/1831113
總結(jié)
以上是生活随笔為你收集整理的JAVA工具方法 —— JSON转XML 和 XML转JSON的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小米盒子4C刷机教程
- 下一篇: JAVA中JSON转XML