Jackson工具类

import java.io.IOException;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public final class JacksonUtils {

    private static final ObjectMapper om = new ObjectMapper();

    static {
        om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    }

    private JacksonUtils() {
    }

    /**
     * (non-Javadoc)
     * @see com.fasterxml.jackson.databind.ObjectMapper#readTree(java.lang.String)
     */
    public static JsonNode readTree(String content) throws JsonProcessingException {
        return om.readTree(content);
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(byte[], java.lang.Class<T>)
     */
    public static <T> T readValue(byte[] src, Class<T> valueType) {
        try {
            return om.readValue(src, valueType);
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(java.lang.String, java.lang.Class<T>)
     */
    public static <T> T readValue(String content, Class<T> valueType) {
        try {
            return om.readValue(content, valueType);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(java.lang.String, TypeReference<T>)
     */
    public static <T> T readValue(String content, TypeReference<T> valueTypeRef) {
        try {
            return om.readValue(content, valueTypeRef);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(java.lang.Object)
     */
    public static String writeValueAsString(Object value) {
        try {
            return om.writeValueAsString(value);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

}
posted @   Bruce.Chang.Lee  阅读(269)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示