jackson 对象带时间的转换报错
今天下午调试的时候,做对象类型转换时,存在时间字段带 T 带 Z 的 UTC 时间,转换失败。
报错如下:
jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of java.time.LocalDateTime
报错原因:将 JSON 字符串反序列化为java.time.LocalDateTime
或其他 Java 8 时间日期类(如 LocalDate、LocalTime 等)时,Jackson 默认并不知道如何处理这些类。
报错代码是这样写的:
复制代码
需要转换的参数
复制代码
jackson 有问题,后面改成用 fastjson 转换就没问题啦!
复制代码
在这段代码中,jsonToObjectWithAnonymousInnerClass
方法通过调用typeReference.getType()
获取了实际的Class
对象,从而实现了对带有泛型的目标类型的反序列化。不过这种方式仍然需要用户显式提供具体的泛型类型信息。
版权声明: 本文为 InfoQ 作者【进哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/cc855f94a6c1572088df41de0】。文章转载请联系作者。
评论