Поддержка Springfox для пользовательских @JsonSerialize - PullRequest
0 голосов
/ 26 марта 2020

У меня есть класс-оболочка с полем, в котором используются пользовательские Serializer и Deserializer.

public class Policy {

    @JsonSerialize(using = PolicyDurationSerializer.class)
    @JsonDeserialize(using = PolicyDurationDeserializer.class)
    @JsonProperty
    @Nullable
    private PolicyDuration duration;

...

Также PolicyDuration класс оборачивает поле Duration type

public class PolicyDuration {
    @Nonnull
    private Duration duration;

    public PolicyDuration(@Nonnull Duration duration) {
        this.duration = roundPolicyDuration(duration);
    }
    ...

Now пользовательский сериализатор:

public class PolicyDurationSerializer extends JsonSerializer<PolicyDuration> {

    public void serialize(PolicyDuration value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
        if (value != null) {
            jgen.writeStartObject();

            jgen.writeNumberField("amount", hours);
            jgen.writeStringField("unit", ChronoUnit.HOURS.name());

            jgen.writeEndObject();
        }

    }
}

Springfox печатает пустой объект в поле duration.

"duration": {}

И я хотел бы, чтобы он показал структуру пользовательского объекта I ' ve создал:

"duration": {
   "amount": 1440,
   "unit": "MINUTES"
}

Есть ли способ настроить Springfox для этого?

...