Как сериализовать дату в определенном формате?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как сериализовать дату в определенном формате?

Сообщение Anonymous »

Обязательный формат вывода любой даты в строке JSON:

Код: Выделить всё

{
"element": [
"~#date",
[
"2013-05-31"
]
],
...
}
Я должен придерживаться этого конкретного формата.
Построение объекта с помощью массива объектов не сработает. Я получаю что-то вроде этого:

Код: Выделить всё

{
"element": [
{
"~#date": "2024-09-17"
}
],
...
}
Я мог бы написать сериализатор для LocalDate, печатающий «[...]». Это похоже на обман. Обратите внимание, что количество дат всегда равно 1.
Есть ли стандартный способ сделать это?
Вот что я делал до сих пор:Объект содержит:

Код: Выделить всё

@JsonProperty("aDate")
private MyMDate[] myDate = null;
Если «MyDate»:

Код: Выделить всё

@Setter
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MyDate {
@JsonProperty("~#date")
@JsonSerialize(using = LocalDateArraySerializer.class)
private LocalDate[] date;
}
И сериализатор:

Код: Выделить всё

public class LocalDateArraySerializer extends JsonSerializer {
private final DateTimeFormatter format = DateTimeFormatter.ofPattern( "yyyy-MM-dd");

@Override
public void serialize(LocalDate[] values, JsonGenerator gen, SerializerProvider serializers) throws IOException {
String seperator = "";
for ( LocalDate ld: values) {
gen.writeString( seperator + ld.format(format));
seperator = ",";
}
}
}
Это дает фактический результат: массив с объектом. Это не запрошенный результат.


Подробнее здесь: https://stackoverflow.com/questions/789 ... fic-format
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»