Подавить все нулевые значения в java запрос API - PullRequest
0 голосов
/ 14 апреля 2020

Я использую Java 8 приложение, основанное на Springboot и Gradle, и я пытаюсь подавить все нулевые значения в моем JSON теле запроса:

{"typePersonne":"Adherent","adressePrincipale":{"ligne1":null,"ligne2":null}

У меня есть перехватчик, чтобы увидеть мой json query:

public class RequestResponseLoggingInterceptor implements ClientHttpRequestInterceptor {
private final org.slf4j.Logger log = LoggerFactory.getLogger(this.getClass());

private void logRequest(final HttpRequest request, final byte[] body) throws IOException {
    if (log.isDebugEnabled()) {
        log.debug("===========================request begin================================================");
        log.debug("URI         : {}", request.getURI());
        log.debug("Method      : {}", request.getMethod());
        log.debug("Headers     : {}", request.getHeaders());
        log.debug("Request body: {}", new String(body, "UTF-8"));
        log.debug("==========================request end================================================");
    }
}

private void logResponse(final ClientHttpResponse response) throws IOException {
    if (log.isDebugEnabled()) {
        log.debug("============================response begin==========================================");
        log.debug("Status code  : {}", response.getStatusCode());
        log.debug("Status text  : {}", response.getStatusText());
        log.debug("Headers      : {}", response.getHeaders());
        log.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
        log.debug("=======================response end=================================================");
    }
}

@Override
public ClientHttpResponse intercept(final HttpRequest request, final byte[] body, final ClientHttpRequestExecution execution) throws IOException {
    logRequest(request, body);
    final ClientHttpResponse response = execution.execute(request, body);
    logResponse(response);
    return response;
}

}

Как я могу подавить все ключи, соответствующие нулевым значениям, когда я вызываю API?

final HttpEntity<?> httpEntity = new HttpEntity<>(adherent, headersCompleted);

responseEntity = restTemplate.exchange ( urlComplete, HttpMethod.PUT, httpEntity, String.class);

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...