jackson的使用

Posted zhenhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jackson的使用相关的知识,希望对你有一定的参考价值。

 

jackson工具类

 

 

package com.taotao.utils;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;


public class JsonUtils {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 将对象转换成json字符串
     */
    public static String objectToJson(Object data) {
        try {
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 将json结果集转化为对象
     * 
     */
    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
     */
    public static <T>List<T> jsonToList(String jsonData, Class<?> target, Class<T> beanType) {
        
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(target, beanType);
        
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return null;
    }
    
    public static void main(String[] args) {
        System.out.println(JsonUtils.jsonToPojo("[{\"username\":\"youth\"}]", List.class).get(0).getClass());
    }
    
}

 

以上是关于jackson的使用的主要内容,如果未能解决你的问题,请参考以下文章

org.codehaus.jackson.JsonParseException:意外字符('/'(代码 47))

JSON Jackson - 使用自定义序列化程序序列化多态类时的异常

如何使用 Jackson 处理命名空间重复的 xml 标签

Jersey Jackson和codehaus vs. fasterxml

Jackson + Hibernate = 很多问题

FasterXML/Jackson-databind远程代码执行漏洞安全通告(CVE-2020-35728)