Jackson的简单工具类

Jackson简介

Jackson是一个简单基于Java的应用库,可以将Java对象转化为json对象、json字符串和xml文档,同样也可以将json、xml转化为Java对象。简单易用性能也相对较高。

依赖的jar

 Maven依赖

<dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-core-asl</artifactId>
   <version>1.9.13</version>
</dependency>
<dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-mapper-asl</artifactId>
   <version>1.9.13</version>
</dependency>

工具类讲解

  • ObjectMapper对象初始化
private static ObjectMapper objectMapper = new ObjectMapper();

    static {
        //序列化所有的字段
        objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.ALWAYS);
        //序列化日期为指定格式
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        //取消默认转化Timestamp形式
        objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
        //忽略空bean转化json的错误
        objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
        //忽略,json字符串中存在但bean中不存在的属性
        objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    }
  • Json字符串转化为Java对象
public static <T> T str2Obj(String str, TypeReference<T> typeReference) {
        if (StringUtils.isBlank(str) || typeReference == null) {
            return null;
        }
        try {
            return (T) (typeReference.getType().equals(String.class) ?
                    str : objectMapper.readValue(str, typeReference));
        } catch (IOException e) {
            log.error("String To Object Fail,error:", e);
            return null;
        }
    }
  • Java对象转化为Json字符串
public static <T> String obj2Str(T object) {
        if (object == null) {
            return null;
        }
        try {
            return object instanceof String ? (String) object : objectMapper.writeValueAsString(object);
        } catch (IOException e) {
            log.error("Object To String Fail,error:", e);
            return null;
        }
    }
  • Json字符串转化为集合对象
public static <T> T str2Obj(String str, Class<?> collectionClass, Class<?>... elementClasses) {
        JavaType javaType = objectMapper.getTypeFactory()
                .constructParametricType(collectionClass, elementClasses);
        try {
            return objectMapper.readValue(str, javaType);
        } catch (IOException e) {
            log.error("String To Object Fail,error:", e);
            return null;
        }
    }

 

参考资料:

https://www.yiibai.com/jackson/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值