如何使用流API

时间:2019-05-16 13:49:41

标签: java json java-stream

我有一个json数组,其中的json对象具有-id和values元素。类似这样的东西:

[
    {
        "id": "123",
        "value": "test",

    },
    {
        "id": "223",
        "value": "test12",

    }
]

我需要查询JSONArray并找到id = 123的值。

我尝试了流api,但是它给了我“未处理的异常:org.JSOn.JSonException'。

JSONArray jsonResponse = new JSONArray(response.asString());   
List<JSONObject> jsonItems = IntStream.range(0, jsonResponse.length()).mapToObj(index -> (JSONObject) jsonResponse.get(index)).collect(Collectors.toList());
 jsonItems.forEach(arrayElm -> arrayElm.get("id").equals("123"));

在'jsonResponse.get(index)'和'arrayElm.get(“ id”)'处提供JSOnexception。

1 个答案:

答案 0 :(得分:0)

简单的解决方案是创建一个与Json字符串相对应的对象。使用Jackson框架将Json字符串转换为Object。每个对象将具有id,value和其他参数等字段。最后,您将获得对象的数组。现在,迭代每个对象并检查以获取所需的值,或者您还使用Java 8 lambda查找所需的值。此外,如果要为json字符串创建对象,请点击链接。

http://www.jsonschema2pojo.org/