遍历对象数组并访问特定的 key/value 字段

Loop though Array of Objects and access specific key/value fields

我有一个看起来像这样的对象:

[
  {
    "title": "Job Title",
    "email": "email@email.com",
    "department": "Department",
    "id": 123456789,
    "name": "First Last"
  }
]

如何遍历此对象并将电子邮件的值保存在变量中?

这是我的代码:

List<T> results = type.getResults();
String userEmail = "";

for (int i = 0; i < results.size(); i++) {
    if (results.get(i).equals("email")) {
        System.out.println("&&&&&&&&&&& in IF condition &&&&&&&&&&&&&&");
    }
    System.out.println(results.get(i));
}

但我似乎无法让这个循环工作。

包括 jackson-core 和 jackson-databind 库。 创建一个映射对象如下:

class User {
    @JsonProperty
    String id;
    @JsonProperty
    String title;
    @JsonProperty
    String email;
    @JsonProperty
    String department;
    @JsonProperty
    String name;
    @Override
    public String toString() {
        return "User [id=" + id + ", email=" + email + "]";
    }

}

将对象映射为数组,如下所示:

ObjectMapper objectMapper=new ObjectMapper();
        User[] users=objectMapper.readValue("[ { \"title\": \"Job Title\", \"email\": \"email@email.com\", \"department\": \"Department\", \"id\": 123456789, \"name\": \"First Last\" } ]", User[].class);
        System.out.println(users[0]);

您可以将此 json 字符串解析为 List.class,然后对内部对象使用 类型转换

String json = "[{" +
        "\"title\": \"Job Title\"," +
        "\"email\": \"email@email.com\"," +
        "\"department\": \"Department\"," +
        "\"id\": 123456789," +
        "\"name\": \"First Last\"" +
        "}]";

List list = new ObjectMapper().readValue(json, List.class);

Map<String, Object> map = (Map<String, Object>) list.get(0);

Object email = map.get("email");
Object id = map.get("id");

System.out.println("email: " + email + ", id: " + id);
// email: email@email.com, id: 123456789