• jsonUtils&&Json、Xml转换工具Jackson使用


    1.jsonUtils

    package com.icil.utils;
    
    import java.util.List;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.ObjectMapper;
    /**
    
      需要的依赖(jar)
    
       <!-- Jackson Json处理工具包   用于处理bean 到 json json dao  bean   -->
                <dependency>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                    <version>2.4.2</version>
                </dependency>
     
     */
    
    
    /**
     * 自定义响应结构(pojo to json to pojo)
     */
    public class JsonUtils {
    
        // 定义jackson对象
        private static final ObjectMapper MAPPER = new ObjectMapper();
    
        /**
         * 将对象转换成json字符串。
         * <p>Title: pojoToJson</p>
         * <p>Description: </p>
         * @param data
         * @return
         */
        public static String objectToJson(Object data) {
            try {
                String string = MAPPER.writeValueAsString(data);
                return string;
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 将json结果集转化为对象
         *
         * @param jsonData json数据
         * @param clazz 对象中的object类型
         * @return
         */
        public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
            try {
                T t = MAPPER.readValue(jsonData, beanType);
                return t;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 将json数据转换成pojo对象list
         * <p>Title: jsonToList</p>
         * <p>Description: </p>
         * @param jsonData
         * @param beanType
         * @return
         */
        public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
            JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
            try {
                List<T> list = MAPPER.readValue(jsonData, javaType);
                return list;
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return null;
        }
        
    }
    View Code
    package com.icil.esolution.utils;
    import java.util.List;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    /**
     * 
    
    * @ClassName: JsonUtils 
    
    * @Description:json to bean   object to json 
    
    * @author  Sea
    
    * @date 24 Aug 2018 2:12:27 PM 
    *
     */
    public class JsonUtils {
    
        // 定义jackson对象
        private static final ObjectMapper MAPPER = new ObjectMapper();
    
        /**
         * 将对象转换成json字符串。
         * <p>Title: pojoToJson</p>
         * <p>Description: </p>
         * @param data
         * @return
         */
        public static String objectToJson(Object data) {
            try {
                String string = MAPPER.writeValueAsString(data);
                return string;
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 将json结果集转化为对象
         *
         * @param jsonData json数据
         * @param clazz 对象中的object类型
         * @return
         */
        public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
            try {
                T t = MAPPER.readValue(jsonData, beanType);
                return t;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 将json数据转换成pojo对象list
         * <p>Title: jsonToList</p>
         * <p>Description: </p>
         * @param jsonData
         * @param beanType
         * @return
         */
        public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
            JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
            try {
                List<T> list = MAPPER.readValue(jsonData, javaType);
                return list;
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return null;
        }
        
        
        /**
         * 可以排除多余的字段,如json中包含字段"aa":"aa" 但是pojo中没有.
         * @param json
         * @param beanType
         * @return
         */
        public static <T>List<T> JsonTOList(String json, Class<T> beanType){
            Gson gson = new Gson();
            List<T> jsonToList =gson.fromJson(json, new TypeToken<List<T>>() {}.getType());
          return jsonToList;    
        }
        
        
        
        
        
    }
    View Code

    2.Java对象、Json、Xml转换工具Jackson使用 参考https://blog.csdn.net/Rongbo_J/article/details/47986121

    依赖:

    <!-- Jackson Json处理工具包 用于处理bean 到 json json dao bean -->
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.6</version>
            </dependency>
            
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
           <!-- 转json 和json转bean用到-->
         <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.6</version> </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
    <!-- 转xml 和xml转bean用到-->
    <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.6</version> </dependency>

    2.1.將Java对象转换为Json字符串:

    @Test
        public void testGenJson()
        {
            ObjectMapper objMapper = new ObjectMapper();
            Book book = new Book("Think in Java",100);
            try {
                jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
                jsonGen.writeObject(book);
            } catch (IOException e) { 
                e.printStackTrace();
            } 
        }
    View Code

    2.2將Json字符串转为Java对象:

         /*
         * Java对象转xml
         */
        @Test
        public void testGenXml()
        {
            XmlMapper xmlMapper = new XmlMapper();
    
            Book book = new Book("Think in Java",100);
            try {
                String xmlStr =  xmlMapper.writeValueAsString(book);
                System.out.println(xmlStr);
            } catch (JsonProcessingException e) { 
                e.printStackTrace();
            }
        }
    View Code
     /*
         * Json转Java对象
         */
        @Test
        public void testGenObjByJson()
        {
            ObjectMapper objMapper = new ObjectMapper();
            String json = "{"name":"Think in Java","price":100}"; 
            try {
                Book book = objMapper.readValue(json, Book.class);
                System.out.println(book);
            } catch (IOException e) { 
                e.printStackTrace();
            }  
        }
    View Code

    2.3將Java对象转为Xml格式

     /*
         * Java对象转xml
         */
        @Test
        public void testGenXml()
        {
            XmlMapper xmlMapper = new XmlMapper();
    
            Book book = new Book("Think in Java",100);
            try {
                String xmlStr =  xmlMapper.writeValueAsString(book);
                System.out.println(xmlStr);
            } catch (JsonProcessingException e) { 
                e.printStackTrace();
            }
        }
    View Code

    4.將xml格式字符串转为Java对象

      /*
         * xml转Java对象
         */
        @Test
        public void testGenObjByXml()
        {
            XmlMapper xmlMapper = new XmlMapper();
            String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>"; 
            try {
                Book book = xmlMapper.readValue(xmlStr, Book.class);
                System.out.println(book);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    View Code
  • 相关阅读:
    新式类、经典类与多继承
    实现抽象类之方式二
    实现抽象类之方式一
    re模块
    28个高频Linux命令
    Git使用教程
    编程语言介绍
    编码
    进制
    操作系统简史
  • 原文地址:https://www.cnblogs.com/lshan/p/8684723.html
Copyright © 2020-2023  润新知