#java #json #синтаксический_анализ #json_encode
Здравствуйте! Есть вот такой ответ от сервера: { "p_result": "ok", "p_item": [ { "p_id": 132, "p_name": "Николай" }, { "p_id": 133, "p_name": "Светлана" } ] } Если правильно понимаю, то это массив. Нужно написать метод который будет по параметру находить нужный элемент что то наподобие : _http.getArrayParamValue("p_name"); Никак не могу сообразить. p.s. думаю для меня было бы полезнее некое указание, нежели ссылка на очерендую библиотеку. Спасибо! Решение. Ошибку тоже понял. @Josfey Спасибо огромное. Вы очень мне помогли! String str = null; String input = "данные полученные от сервера"; JsonParser parser = new JsonParser(); JsonObject mainObject = parser.parse(input).getAsJsonObject(); JsonArray pItem = mainObject.getAsJsonArray("p_item"); for (JsonElement user : pItem) { JsonObject userObject = user.getAsJsonObject(); userObject.get("p_id"); str = userObject.get("p_id").toString(); }
Ответы
Ответ 1
Не совсем понял, что именно вы хотите извлечь из приведённой json-структуры, но вот, например, как извлечь из неё имя пользователя c id = 132 с помощью GSON. String input = "тут ваша json-структура"; JsonParser parser = new JsonParser(); JsonObject mainObject = parser.parse().getAsJsonObject(); JsonArray pItem = mainObject.getAsJsonArray("p_item"); for (JsonElement user : pItem) { JsonObject userObject = user.getAsJsonObject(); if (userObject.get("p_id").getAsInt() == 132) { System.out.println(userObject.get("p_name")); return; } }Ответ 2
На мой взгляд, самая лучшая на данный момент библиотека для работы с JSON - это Jackson от fasterxml. Измерял скорость сериализации/десериализации с помощью JMH, и эта библиотека показала наилучшие результаты на довольно сложной структуре данных. Кроме того, она имеет довольно богатый набор настроек: интернирование ключей, реакция на ошибки синтаксиса и т.п. Если вы хотите не просто сериализовывать/десериализовывать JSON-документы, а хотите менять структуру JSON-документа на лету, то рекомендую GSON.Ответ 3
Рекомендую обратить внимание на json-simple Вот тут пример использования
Комментариев нет:
Отправить комментарий