Json формат даты в spring -boot
Я использую spring -boot, и у меня есть класс сущности, определенный как-то вроде
import org.joda.time.LocalDateTime;
@Entity
public class Project {
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private LocalDateTime start_date;
...
...
}
Когда этот класс преобразуется в JSON, поле преобразуется в следующее строковое представление
{"start_date":[2014,11,15,0,0,0,0],...., ...}
Я хочу, чтобы ответ json был как yyyy-MM-dd
.
Я попробовал аннотацию @DateTimeFormat(iso = ISO.DATE)
, и это тоже не помогло.
Есть ли простой способ сделать это преобразование в правильный формат json?
Ответы
Ответ 1
Чтобы отформатировать дату как yyyy-MM-dd
, вам нужно сделать три вещи:
- Добавить зависимость от
com.fasterxml.jackson.datatype:jackson-datatype-joda
. Судя по выводам, которые вы получаете в данный момент, я думаю, что у вас может быть эта зависимость.
- Настройте Jackson, чтобы не форматировать даты как временные метки, добавив
spring.jackson.serialization.write-dates-as-timestamps: false
в ваш файл application.properties
.
- Аннотировать поле
LocalDataTime
или метод getter с помощью @JsonFormat(pattern="yyyy-MM-dd")
Примечание. Вам нужно будет использовать Spring Boot 1.2 для выполнения шага 2.