Java Springboot,RestTemplate结果编号编码
我有一个从OracleDB读取的api。如果我直接调用它,它将返回:Java Springboot,RestTemplate结果编号编码,java,spring-boot,resttemplate,rfc,Java,Spring Boot,Resttemplate,Rfc,我有一个从OracleDB读取的api。如果我直接调用它,它将返回: { ... ... numericField: 910010000346422907 ... otherNumericField: 2018020800 ... } 但是如果我通过springboot java服务器使用 URI targetUrl= UriComponentsBuilder.fromUriString(url) .queryParams(queryParameters)
{
...
...
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返回内容类型
application/json;字符集=UTF-8
。如何正确读取数值?您必须创建一个包含所有属性的POJO类,类似这样的,您可以使用lombok通过注释为您创建getter
和setter
在getForObject
调用中,只需传递类
类型
ResponseData result = restTemplate.getForObject(targetUrl, ResponseData.class);
如果您不知道JSON模式,则使用
映射映射
,但始终建议对模型进行解析,您也可以忽略不需要的字段,也不知道将对象转换为字符串的原因?它必须类似于restemplate.getForObject(targetUrl,YourObj.class);我想解析json,但不知道它是如何生成的,我没有任何YourObj.classe。如果我在对象模式之前不知道,但我肯定能找到这些数字字段呢?请查看我在answer@tommasoballardini中更新的注释。如果你显示json响应和ResponseData
@tommasoballardini
ResponseData result = restTemplate.getForObject(targetUrl, ResponseData.class);