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

相关文章
相关标签/搜索