如何在Java中使用JacksonJSONProvider ObjectMapper()类?
我想将deserialize
JSON对象转换成ISO8601
格式
我已经通过swagger-code-gen
生成了JacksonJSONProvider
类,但是我不知道如何使用类
这是这个类的代码
@Provider
@Produces({MediaType.APPLICATION_JSON})
public class JacksonJsonProvider extends JacksonJaxbJsonProvider {
public JacksonJsonProvider() {
ObjectMapper objectMapper = new ObjectMapper()
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.registerModule(new JavaTimeModule())
.setDateFormat(new RFC3339DateFormat());
setMapper(objectMapper);
}
}
实际结果
"offset": {
"totalSeconds": 19800,
"id": "+05:30",
"rules": {
"transitions": [],
"transitionRules": [],
"fixedOffset": true
}
},
"year": 2006,
"month": "NOVEMBER",
"monthValue": 11,
"dayOfMonth": 8,
"hour": 15,
"minute": 57,
"second": 0,
"nano": 0,
"dayOfWeek": "WEDNESDAY",
"dayOfYear": 312
预期结果
"2006-11-08T21:27:00.000+0000"
# 1 楼答案
你的预期结果
根本不是JSON格式,所以JSON格式化程序对您没有帮助。要将
OffsetDateTime
解析为所需格式,需要使用DateTimeFormatter类。但是,如果您有一个具有类型为OffsetDateTime
的成员的类,并且您希望将整个类序列化为JSON,那么下面是给出正确答案的问题的链接:Spring Data JPA - ZonedDateTime format for json serialization 。基本上,解决方案如下所示