项目详情:Sping Boot with Gradle
我的java类:
public class Sale{
private String storeNumber;
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime saleDateTime;
// getter, setter
}
这个对象被序列化为JSON,看起来像这样:
{
"storeNumber": "023",
"saleDateTime": {
"date": {
"year" : 2023,
"month" : 4,
"day" : 4
},
"time": {
"hour" : 16,
"minute" : 28,
"second" : 45,
"nano" : 0
}
}
}
我想使用JacksonObjectMapper将这个JSON转换回销售对象。readValue(json,销售.你将如何从显示的格式反序列化它?因为这就是我从我的数据库里得到的。我希望能够为这种格式的日期数据编写一个自定义的反序列化器,因为我们有很多类似的生产数据。我将不得不找到一种方法来反序列化给定日期的对象。
到目前为止我所尝试的:
- 添加jackson-datatype-jr 310的gradle依赖
- 将JavaTimeModule注册为Map器。public void run();
- 做了一个自定义的反序列化器,扩展了JsonDeserializer并覆盖了public LocalDateTime反序列化(JsonParser p,DeserializationContext context),并将其注册到ObjectMapper作为Map器。registerModule(LocalDateTime.类,new CustomDeserializer())
但没有用。我得到Jackon MismatchedInputException:无法反序列化类型“java”的值。从Object值(token 'JsonToken.START_OBJECT')
1条答案
按热度按时间sdnqo3pr1#
以下作品。基本上这是你的第三个选择-不知道你错过了什么。
输出如下:
依赖关系-没有什么特别的