我有一个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
。我怎样才能正确读取数值?
你必须创建一个包含所有属性的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
,但总是建议解析模型,你也可以忽略你不需要的字段,也不知道