#spring #jodatime #spring-rest #wicketstuff
#spring #jodatime #spring-rest #wicket stuff
Вопрос:
У меня есть spring rest api (фактически apache wicket rest api поверх spring project), который возвращает объект со свойством, которое является joda LocalDate .
Все в порядке, за исключением того, что joda LocalDate / LocalTime / DateTime … они возвращаются в этом формате:
"createdDate": {
"year": 2019,
"dayOfMonth": 15,
"dayOfWeek": 1,
"era": 1,
"weekOfWeekyear": 16,
"secondOfMinute": 21,
"millisOfSecond": 455,
"dayOfYear": 105,
"millisOfDay": 72861455,
"yearOfCentury": 19,
"weekyear": 2019,
"minuteOfHour": 14,
"secondOfDay": 72861,
"yearOfEra": 2019,
"centuryOfEra": 20,
"minuteOfDay": 1214,
"monthOfYear": 4,
"hourOfDay": 20,
"zone": {
"fixed": false,
"uncachedZone": {
"cachable": true,
"fixed": false,
"id": "Australia/Perth"
},
"id": "Australia/Perth"
},
"millis": 1555330461455,
"chronology": {
"zone": {
"fixed": false,
"uncachedZone": {
"cachable": true,
"fixed": false,
"id": "Australia/Perth"
},
"id": "Australia/Perth"
}
},
"equalNow": false,
"afterNow": false,
"beforeNow": true
},
Я ожидаю, что значение будет в этом формате yyyy-MM-dd'T'HH:mm:ss
.
Я попытался использовать JsonFormat
аннотацию к указанному полю, но безуспешно.
...
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")
@Field("createdDateS")
private DateTime createdDate;
...
Спасибо!
Ответ №1:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.8.7</version>
</dependency>
Добавьте вышеуказанную зависимость maven.
Комментарии:
1. простое добавление вышеуказанной зависимости приведет к возврату объектов joda в форматированную строку?
2. @BorgyManotoy Да, я должен, потому что Джексон автоматически регистрирует модуль Joda, когда JodaModule находится в пути к классу.
3. Я попытался добавить / удалить это:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")
но все равно не повезло. Он по-прежнему не отображается как форматированная строка.4. вам просто нужно добавить зависимость в pom, не удаляйте @JsonFormat(shape = JsonFormat . Форма. СТРОКА, шаблон = «гггг-ММ-дд’Т’Ч: мм: сс»)
5. Я использовал аннотацию version
2.9.8
и JsonFormat, которая не удалялась. Тем не менее, он отображается как объект вместо форматированной строки. Для этого не нужны другие конфигурации?