Серийные метки времени, конвертируемые в секунды - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь сериализовать объект Timestamp в JSON. Но объект в JSON отображается в секундах.

Это фрагмент моего POJO:

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class TimeAndDateDetail{

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh.mm.ss")
    private Timestamp timeAndDate;

    public Timestame getTimeAndDate() {return timeAndDate; }

    public void setTimeAndDate(Timestamp timeAndDate){
        this.timeAndDate = timeAndDate;
    }
}

Это мой вывод:

{
    "timeAndDate": 1583038800000
}

Почему это происходит? И как я могу сохранить его в оригинальном формате?

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Вы можете аннотировать поле с помощью @JsonFormat, чтобы указать формат, в котором временная метка будет сериализована. Вот пример:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")
0 голосов
/ 27 февраля 2020

Похоже, вы используете Джексона, и это поведение по умолчанию. Лучший способ - отключить функцию сопоставления связанных объектов:

objectMapper
    .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
...