我有一个 api,它从 OracleDB 读取。如果我直接调用它,它会返回:
{
...
...
numericField: 910010000346422907
...
otherNumericField: 2018020800
...
}
但是如果我使用 springboot java 服务器调用它
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;字符集=UTF-8
。我怎样才能正确读取数值?
请您参考如下方法:
你必须创建一个具有所有属性的 POJO 类,像这样,你可以使用 lombok 来创建 Getters
和 Setters
通过注释为您lombok
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
, 但总是推荐解析为模型,你也可以忽略你不需要和不知道的字段