如何从json JAVA SPRING获取特定数据?
在我工作的公司里,他们让我连接到一个关于实际美元价值的API,并从中获取数据。我得到了,但我得到了一个包含太多数据的JSON,我只需要美元值:
如果你看不到截图,这是我得到的JSON
{
"version": "1.7.0",
"autor": "mindicador.cl",
"codigo": "dolar",
"nombre": "Dólar observado",
"unidad_medida": "Pesos",
"serie": [
{
"fecha": "2021-11-08T03:00:00.000Z",
"valor": 812.4
}
]
}
我只需要
勇气:812.4
这就是我在JAVA代码中调用API的方式
@Service
public class DolarServiceImp implements DolarService{
@Autowired
private RestTemplate restTemplate;
@Override
public String getDolar() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
String url = "https://mindicador.cl/api/dolar/08-11-2021";
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(map, headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
return response.getBody();
}
}
我认为getBody函数可以获取所有数据。我一整天都在试图得到结果,但什么都没有,我的头要爆炸了。提前谢谢
# 1 楼答案
如果只需要json中的一个值,而不是完整的JavaBean映射,那么可以使用jsonpath
使用jsonpath,您可以查询json中的任何值,而无需将字段逐个映射到java bean/pojo:
$.store.book[?(@.price < 10)]
您可以使用此web来测试jsonpath表达式:
https://jsonpath.com/