java – LocalDateTime – 使用LocalDateTime.parse进行反序列化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – LocalDateTime – 使用LocalDateTime.parse进行反序列化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1737字,纯文字阅读大概需要3分钟。
内容图文
我有字段initiateDate,它由ToStringSerializer类序列化为ISO-8601格式.
@JsonSerialize(using = ToStringSerializer.class)
private LocalDateTime initiationDate;
当我收到以下JSON时
...
"initiationDate": "2016-05-11T17:32:20.897",
...
我想通过LocalDateTime.parse(CharSequence text)工厂方法对其进行反序列化.我的所有尝试都以com.fasterxml.jackson.databind.JsonMappingException结束:
Can not instantiate value of type [simple type, class
java.time.LocalDateTime
] fromString
value ('2016-05-11T17:32:20.897'
); no single-String
constructor/factory method
我如何实现这一目标?如何指定工厂方法?
编辑:
通过将jackson-datatype-jsr310 module包含到项目中并使用@JsonDeserialize和LocalDateTimeDeserializer来解决问题.
@JsonSerialize(using = ToStringSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime initiationDate;
解决方法:
Vanilla Jackson没有办法从任何JSON字符串值反序列化LocalDateTime对象.
你有几个选择.您可以创建并注册自己的JsonDeserializer,它将使用LocalDateTime#parse.
class ParseDeserializer extends StdDeserializer<LocalDateTime> {
public ParseDeserializer() {
super(LocalDateTime.class);
}
@Override
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
return LocalDateTime.parse(p.getValueAsString()); // or overloaded with an appropriate format
}
}
...
@JsonSerialize(using = ToStringSerializer.class)
@JsonDeserialize(using = ParseDeserializer.class)
private LocalDateTime initiationDate;
或者,您可以将Jackson’s java.time extension添加到类路径中,并使用ObjectMapper注册相应的模块.
objectMapper.registerModule(new JavaTimeModule());
让杰克逊为你做转换.在内部,它使用LocalDateTime#parse和其中一种标准格式.幸运的是,它支持像
2016-05-11T17:32:20.897
盒子外面.
内容总结
以上是互联网集市为您收集整理的java – LocalDateTime – 使用LocalDateTime.parse进行反序列化全部内容,希望文章能够帮你解决java – LocalDateTime – 使用LocalDateTime.parse进行反序列化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。