Преобразуйте LocalDate в «dd / MM / yyyy», используя аннотации Джексона - PullRequest
0 голосов
/ 01 июля 2019

Я использую:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
private LocalDate date;

Но это не работает ...

Что я получаю в soapUi:

"date":    {
  "year": 1995,
  "month": "OCTOBER",
  "dayOfMonth": 10,
  "dayOfWeek": "TUESDAY",
  "era": "CE",
  "dayOfYear": 283,
  "leapYear": false,
  "monthValue": 10,
  "chronology":   {
     "id": "ISO",
     "calendarType": "iso8601"
  }

},

Мне не нужен объектный картограф, верно?

есть ли способ просто использовать аннотации?

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

В частности, @JsonFormat позволяет указать, как форматировать значения даты и календаря в соответствии с форматом SimpleDateFormat. Вместо использования LocalDate используйте Date, затем укажите локаль в качестве параметра этой аннотации.

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy", locale = "en_GB")
public Date getCurrentDate() {
    return new Date();
}

Руководство по @JsonFormat в Джексоне

0 голосов
/ 01 июля 2019

Для десериализации LocalDateTime Java8

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateOfBirth;

При использовании следующих зависимостей в вашем проекте.

Maven

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.9.7</version>
</dependency>
<dependency>
   <groupId>com.fasterxml.jackson.datatype</groupId>
   <artifactId>jackson-datatype-jsr310</artifactId>
   <version>2.9.7</version>
</dependency>

Gradle

compile "com.fasterxml.jackson.core:jackson-databind:2.9.7"
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.7"

Никакой дополнительной реализации Deserializer не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...