Java Springboot,RestTemplate结果编号编码

问题描述 投票:2回答:1

我有一个api,它从OracleDB读取。如果我直接调用它返回:

{
 ...
 ...
 numericField: 910010000346422907
 ...
 otherNumericField: 2018020800
 ...
}

但如果我通过spring boot java server使用它来调用它

URI targetUrl= UriComponentsBuilder.fromUriString(url)
            .queryParams(queryParameters)
            .build()
            .encode()
            .toUri();

RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(targetUrl, String.class);

结果字符串中的值看起来像

numericFiled: 9.1001000034642291E17 .... otherNumericField: 2.0180208E9

api返回Content-Type application/json; charset=UTF-8。我怎样才能正确读取数值?

java spring-boot resttemplate rfc
1个回答
1
投票

你必须创建一个包含所有属性的POJO类,像这样,你可以使用lombok通过注释Getters为你创建Setterslombok

public class ResponseData {

      private double numericFiled

      private double otherNumericField

   // Getters and Setters

  }

而在getForObject呼叫只是通过Class类型

ResponseData result = restTemplate.getForObject(targetUrl, ResponseData.class);

如果你不知道JSON模式然后使用Map<Object,Object> map,但总是建议解析模型,你也可以忽略你不需要的字段,也不知道

© www.soinside.com 2019 - 2024. All rights reserved.