zoukankan      html  css  js  c++  java
  • Java中xml2json,json2xml

    在JAVA中xml与json数据互相转换

    package com.sgcc.platform.common.utils;
    
    import static java.lang.String.format;
    
    import java.util.Map;
    
    import org.json.JSONObject;
    import org.json.XML;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
    import com.fasterxml.jackson.dataformat.xml.XmlMapper;
    import com.sgcc.platform.common.exceptions.ConvertException;
    
    /**
     * json,xml互相转换
     * @author libing
     *
     */
    public class JsonXmlUtil {
        private static JacksonXmlModule module = new JacksonXmlModule();
        private static ObjectMapper objectMapper = new ObjectMapper(); 
        private static XmlMapper xmlMapper = new XmlMapper(module);
        static{
            //去掉xml顶部内容<?xml version="1.0" encoding="UTF-8" ?>
            module.setDefaultUseWrapper(false);
        }
        
        /**
         * xml字符串转换成net.sf.json.JSONObject对象
         * @param xmlStr
         * @return
         */
        public static JSONObject xml2jsonObj(String xmlStr){
            JSONObject jsonObject = XML.toJSONObject(xmlStr);
            return jsonObject;
        }
        
        /**
         * xml字符串转换成json字符串
         * @param xmlStr
         * @return
         */
        public static String xml2jsonStr(String xmlStr){
            JSONObject jsonObject = XML.toJSONObject(xmlStr);
            return jsonObject.toString();
        }
        
        /**
         * json字符串转换成xml字符串
         * @param jsonStr
         * @return
         */
        public static String json2xml(String jsonStr){
            try {
                JsonNode root = objectMapper.readTree(jsonStr);
                String result = xmlMapper.writeValueAsString(root);
                return result.replaceAll("</?ObjectNode>","");
            } catch (Exception e) {
                throw new ConvertException(format("incorrect JSON data:/n%s",jsonStr));
            }
        }
        
        /**
         * map数据转换成xml字符串
         * @param mapData
         * @return
         */
        public static String map2xml(Map<String,Object> mapData){
            Object repinfoJsonObj = JSONObject.wrap(mapData);
            String jsonStr=repinfoJsonObj.toString();
            String result=json2xml(jsonStr);
            return result;
        }
        
    //    public static void main(String[] args) throws Exception {
    //        String ss="{"REPINFO":{"SITEDATA":[{"SITE_NAME":"有没 ","REMARK":null,"MEASCODE":35,"SITE_ID":2},{"SITE_NAME":"城","REMARK":null,"MEASCODE":35,"SITE_ID":3}]}}";
    //        System.out.println(json2xml(ss));
    //        
    //    }
    }
  • 相关阅读:
    前端优化
    Git基础使用
    【高可用架构】用Nginx实现负载均衡(三)
    【高可用架构】借助Envoy工具发布项目到多台服务器(二)
    【高可用架构】开发机上部署Deploy项目(一)
    【Linux系列】Centos7安装Samba并将工作区挂载到win(八)
    【Linux系列】Centos 7部署Laravel项目(七)
    【Linux系列】Centos 7安装 Redis(六)
    【Linux系列】Centos 7安装 Mysql8.0(五)
    gitlab服务器搭建
  • 原文地址:https://www.cnblogs.com/walk-the-Line/p/5439028.html
Copyright © 2011-2022 走看看