Различные выходы для одной и той же переменной java - PullRequest
0 голосов
/ 02 апреля 2020

Я разрабатывал код, который отображает и создает JSON из POJO в Spring Boot и отправляет его на сервер
Я могу столкнуться с очень странной проблемой, касающейся поля в POJO, которое было определено как Double Я получил два разных результата в двух разных сценариях

Пример POJO

class Response{

String name
Double amount
}

Как отображалось поле и возвращалось значение

private String mapData(){
   response.setName("abc");
   response.setAmount(10.0);
   ObjectMapper mapper = new ObjectMapper();

   return mapper.writeValueAsString(response);
}

Сценарий 1

String outputBody = mapData()
LOG.info("Transaction {} : Response to post in SAP {}", transactionId, outputBody);

Ответ 1

{
"name" : "abc",
"amount" : 10     <----- Integer field
}

Сценарий 2

private String postInSap(String outputBody) {

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.add("Authorization", Constant.HTTP_HEADER_BASIC + property.getBase64EncodedSecret());

    HttpEntity<?> request = new HttpEntity<>(outputBody, headers);
    String uri = property.getSapUrl();
    return restTemplate.exchange(uri, HttpMethod.POST, request, String.class).getStatusCode().toString();

}

Запрос идет с телом как

{
"name" : "abc",
"amount" : 10.0           <----- Double field
}

Почему это то же самое json действует по-разному в двух разных сценариях ios. В одном случае он действует как целое число, а в другом - как двойной?

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