我有一个简单的问题,想知道这里是否有人可以帮助我如何解析 Json 字符串并提取所有用户并将其放入列表中?
注意用户正下方的对象键是一个随机数,可以随着每次响应而改变!
{
"_links": {},
"count": {},
"users": {
"123321": { //*Is a random number which can be any number
"_links": {},
"user": {
"id": "123321",
"name": "...",
"age": "...",
"address": ""
..
}
},
"456654": {
"_links": {},
"user": {
"id": "456654",
"name": "...",
"age": "...",
"address": ""
...
}
}
...
},
"page": {}
}
理想情况下,最好使用 Jackson Json 或 Gson。
此外,我只想构造具有两个字段(id 和 name)的 User 对象,并忽略其余字段!
最佳答案
jackson 方法可能如下所示:
ObjectMapper om = new ObjectMapper();
JsonNode node = om.readTree(input);
List<JsonNode> users = node.findValues("user");
从这里您可以直接从 JsonNode
实例检索值,例如:
for (JsonNode jsonNode : users) {
System.out.println(jsonNode.get("name"));
System.out.println(jsonNode.get("id"));
}
或转换为 POJO:
for (JsonNode user : users) {
User pojo = om.treeToValue(user, User.class);
System.out.println(pojo.id);
System.out.println(pojo.name);
}
假设存在一个如下所示的 POJO:
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
public String name, id;
}
关于java - 从json字符串中提取对象数组并将它们放入ArrayList中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47254825/