如何使用 Rest 模板进入 JSON 对象?

How to use Rest Template to step into a JSON object?

我学会了如何使用 rest 模板访问 JSON 数组,如下所示:

[
    {
        "ID": "0ae6496f-bb0b-4ebd-a094-ca766e82f3e7",
        "Confirmed": 0,
    }
    {
        "ID": "e010ced5-c7cb-4090-a7ed-206f4c482a5b",
        "Confirmed": 0,
    }
]

我访问了 Confirmed 例如

public Model[] getModel() {
    ResponseEntity<Model[]> response = restTemplate.getForEntity(apiUrl, Model[].class);
    return response.getBody();
}

但现在我必须从另一个 API 访问另一个 Json 中的数据。数据看起来像这样

{
    "prefixes": [
        {
            "region": "ap-northeast-2",
            "service": "AMAZON",
        },
        {
            "region": "eu-west-3",
            "service": "AMAZON",
        }
    ]
}

如何访问内部的 regionservice,它的正确名称是什么?

第一个是JSON数组,第二个是JSON对象?

第一个API就是

https://example.com

而第二个是

https://example.com/data.json.

您必须为 return 类型创建 POJO:

List<RegionServiceObject> items;

RegionServiceObject 的位置:

public class RegionServiceObject {
    private String region;
    private String service;
    // constructors, getters/setters, toString()....
}

object反序列化的方式和你写的类似:

RegionServiceObject[] items = restTemplate.getForObject(url, RegionServiceObject[].class);

并且对于特定 item:

特定项目的访问将像往常一样
for (RegionServiceObject item : items) {
    item.getRegion();
    item.getService();
    // use them here
}