遍历对象数组并访问特定的 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
我有一个看起来像这样的对象:
[
{
"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