JAVA工具方法 —— JSON轉XML 和 XML轉JSON

這陣子一直在作一個三方支付,數據傳遞用的都是xml 可是在項目裏都是用的json,沒辦法 研究了下json和xml互轉的方法 這裏作下記錄。java

 1. json轉xml 相對簡單些 用遞歸便可實現json

/**
     * Map or JSON 轉換成Xml
     *
     * fastJSON實現了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字符串 轉JSON數組

    xml轉JON 須要藉助 jackSon的 fastxml包來實現app

<!-- fasterxml -->
        <dependency>
            <groupId>com.fasterxml</groupId>
            <artifactId>jackson-xml-databind</artifactId>
            <version>0.6.2</version>
        </dependency>
/**
     * xml 轉json
     */
    public static JSONObject convertXmlToJson(String xml) throws IOException {
        XmlMapper xmlMapper = new XmlMapper();
        JSONObject param = xmlMapper.readValue(xml, JSONObject.class);

        return param;
    }

利用XmlMapper這個類, 簡單兩段代碼就能夠搞定 可是該方法有個缺點, 若是你的xml字符串轉換的內容裏 有數組的狀況下, 直接這樣轉是不行的。 這種狀況就要本身創建相應的實體類來作接收。 注:實體要有相應的getset方法, 並要保證和xml中的字段名一一對應。code

相關文章
相關標籤/搜索