这篇文章主要为大家展示了“如何解决使用Jackson反序列化遇到的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决使用Jackson反序列化遇到的问题”这篇文章吧。Jackson反序列
这篇文章主要为大家展示了“如何解决使用Jackson反序列化遇到的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决使用Jackson反序列化遇到的问题”这篇文章吧。
最近在项目中需要使用Jackson把前台转来的字符转为对象,转换过程中发生了错误,报错如下
com.fasterxml.jackson.databind.exc.InvalidFORMatException: Can not construct instance of java.util.Date from String
value '2018-09-14 15:12:08': not a valid representation (error: Failed to parse Date value '2018-09-14 15:12:08':
Can not parse date "2018-09-14 15:12:08": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
原因是需要转换成的目标对象有Date类型的属性,前台传来的是yyyy-MM-dd HH:mm:ss类型
而Jackson只支持以下四种
yyyy-MM-dd'T'HH:mm:ss.SSSZ yyyy-MM-dd'T'HH:mm:ss.SSS'Z' EEE, dd MMM yyyy HH:mm:ss zzz yyyy-MM-dd
在网上查了许多方法都比较麻烦,我太懒……
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JSONFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")private Date createTime;
如果json字段比较多,而我们对象只需要部分字段,这时反序列化时会报错,可以在new ObjectMapper后加上
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
就可以在反序列化时忽略json中多余的字段了。
存在冲突的访问器方法,Conflicting setter definitions for property “myproperty”
class TypeA extends TypeB implements InfC {}class TypeB { String myproperty; String getMyproperty(){return myproperty}; void setMyproperty(String value){myproperty = value};}interface InfC { String getMyproperty(); void setMyproperty(String value); }
以上是“如何解决使用Jackson反序列化遇到的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!
--结束END--
本文标题: 如何解决使用Jackson反序列化遇到的问题
本文链接: https://www.lsjlt.com/news/300114.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0