首页 > 解决方案 > 使用java在json中使用多个键获取键值

问题描述

如何在java中使用多个键获取键值?

示例:我想提取 id=121 和 number=1 的名称

    [{
        "id": 121,
        "name": "Pants",
        "number": 1,
        "specification": ""
    },
    {
        "id": 121,
        "name": "color",
        "number": 2,
        "specification": ""
    }];

标签: javajsonrestrest-assuredjsonpath

解决方案


如果您有专门的课程,例如:

class A {

    private String id;
    private String name;
    private int number;
    private String specification;

    //getters and setters method
}

然后您可以使用org.codehaus.jackson.map.ObjectMapper从 json 创建对象:

ObjectMapper mapper = new ObjectMapper();
A[] objects = mapper.readValue(jsonString, A[].class);

现在,@vader 是如何提到它的,您可以使用过滤器方法来获得正确的值:

List<A> list = Arrays.stream(objects)
    .filter(obj -> obj.getId().equals("121") && obj.getNumber() == 1)
    .collect(Collectors.toList());

推荐阅读