Как не включать параметры null в ответ от сервера?

Я пишу серверную часть на Java, по принципу Api First, возникла проблема: как не добавлять пустые поля в ответ от сервера.

Вот пример yaml

/external/v1/tariffs:
    get:
      tags:
        - external-tariffs-controller
      summary: Получение тарифа по mcc
      operationId: getTariffs
      parameters:
        - name: mcc
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Тариф успешно получен
          content:
            application/json:
              schema:
                type: array
                items:
TariffsDto:
      type: object
      properties:
        rate:
          type: string
          description: Процентная ставка комиссии
        minFeeSum:
          type: integer
          description: Минимальная сумма комиссии
        maxFeeSum:
          type: integer
          description: Максимальная сумма комиссии
      required:
        - rate

Цель: из

[
    {
        "rate": "2.7",
        "minFeeSum": null,
        "maxFeeSum": null
    }
]

Получить просто

[
    {
        "rate": "2.7"
    }
]

Удалять массив я не могу, надо чтобы ответ был в массиве, из возможных решений которые я находил - была аннотация @JsonInclude(JsonInclude.Include.NON_NULL) но я такое добавить не могу, потому что класс генерируется автоматически и так же в конфигурацию спринга добавлял такие поля:

jackson:
    default-property-inclusion: non_null
    serialization:
      write-null-map-values: false
      write-empty-json-arrays: false

так же не помогло. Помогите пожалуйста))


Ответы (1 шт):

Автор решения: TaranenkoAnt

Можно попробовать настроить объект-маппера через Jackson2ObjectMapperBuilderCustomizer:

import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConfig {

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer customizeObjectMapper() {
    return objectMapperBuilder -> {
        // Исключаем пустые значения из сериализации
        objectMapperBuilder.serializationInclusion(JsonInclude.Include.NON_NULL);
    };
}
→ Ссылка