zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Windows 科研软件推荐
    有关Python 包 (package) 的基本知识
    《Using Python to Access Web Data》Week4 Programs that Surf the Web 课堂笔记
    Coursera助学金申请模板
    《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
    Jupyter 解决单个变量输出问题
    解决 pandas 中打印 DataFrame 行列显示不全的问题
    《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记
    缓存击穿及解决方案
    jvm垃圾收集器
  • 原文地址:https://www.cnblogs.com/lshan/p/8684723.html
Copyright © 2011-2022 走看看