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 @ 2022-11-09 15:33  Bruce.Chang.Lee  阅读(258)  评论(0编辑  收藏  举报