Я разрабатывал код, который отображает и создает 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. В одном случае он действует как целое число, а в другом - как двойной?