Я пытаюсь Json сериализовать и десериализовать массив LocalDate в моем классе Java, но когда я генерирую схему json для веб-службы, параметр по-прежнему отображается как LocalDate, а не как String.
Ниже приведен код:
@JsonSerialize(
contentUsing = ToStringSerializer.class
)
@JsonDeserialize(
contentUsing = LocalDateFromJSON.class
)
private LocalDate[] amortizationDates;
и в схеме Json это выглядит как:
amortizationDates":{"type":"array","items":{"$ref":"#/definitions/LocalDate"}}
, что неверно, поскольку при сериализации оно должно выглядеть как строка.
Любые идеи о том, как сериализоватьэто как String.
Редактировать:
Я подаю в суд на Джексона за сериализацию, и следующие детали сериализатора:
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
- Джексон встроен
LocalDateFromJSON ->
public static class LocalDateFromJSON extends JsonDeserializer<LocalDate> {
public LocalDateFromJSON() {
}
public LocalDate deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
return LocalDate.parse(((TextNode)jsonParser.readValueAsTree()).asText());
}
}