Массив Json не сериализуется должным образом - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь 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());
        }
    }
...