java - 从json字符串中提取对象数组并将它们放入ArrayList中?

标签 java json jackson gson resttemplate

我有一个简单的问题,想知道这里是否有人可以帮助我如何解析 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/

相关文章:

java - 如何保护 REST API 中的输入 JSON 对象?

java - Spring Batch JdbcPagingItemReader 似乎没有执行所有项目

Angular 2 中的 JSON 管道不起作用

java - 如何使用 java/Spring/rest 将 post json 对象数据传递到 api

php - 如何获得正确的json?

json - jackson :反序列化后如何进行验证?

java - ZonedDateTime 的 Jackson 反序列化问题

java - 方法必须调用 Netbeans 中的 super() 错误

java - JDBC 连接和测试错误

java - 自定义 Jackson 解串器未在 Spring 中注册