Как я могу запросить значение на основе ключа в JSONArray с помощью потокового API - PullRequest
0 голосов
/ 16 мая 2019

У меня есть массив json с объектами json, имеющими элементы -id и значения. Что-то вроде этого:

[
    {
        "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"));

он дает JSOnexception в «jsonResponse.get (index)» и в «arrayElm.get (»).ID ").

1 Ответ

0 голосов
/ 16 мая 2019

Простым решением будет создание объекта, соответствующего строке Json. Используйте каркас Джексона для преобразования строки Json в Object. Каждый объект будет иметь такие поля, как идентификатор, значение и другие параметры. Наконец, вы получите массив вашего объекта. Теперь выполните итерацию каждого объекта и проверьте, чтобы получить требуемое значение, или вы также используете лямбду Java 8, чтобы найти требуемое значение. Кроме того, если вы хотите создать объект для вашей строки json, перейдите по ссылке.

http://www.jsonschema2pojo.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...