Jackson 工具類適用
阿新 • • 發佈:2022-05-10
jackson工具類使用
import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; public class JsonUtil { private static ObjectMapper simpleMapper = new ObjectMapper(); private static ObjectMapper fullMapper = new ObjectMapper(); static { simpleMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); simpleMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.JAVA_LANG_OBJECT); fullMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); fullMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.EVERYTHING); } public static String toJsonString(Object obj) throws JsonProcessingException { return simpleMapper.writeValueAsString(obj); } public static String toJsonStringWithProperty(Object obj) throws JsonProcessingException { return fullMapper.writeValueAsString(obj); } public static <T> T fromJsonString(String jsonStr, Class<T> type) throws JsonProcessingException { return simpleMapper.readValue(jsonStr, type); } public static <T> T fromJsonStringWithProperty(String jsonStr, Class<T> type) throws JsonProcessingException { return fullMapper.readValue(jsonStr, type); } }