Страницы

Поиск по вопросам

четверг, 18 октября 2018 г.

Json как парсить на Java?

Здравствуйте! Есть вот такой ответ от сервера:
{ "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(); }


Ответ

Не совсем понял, что именно вы хотите извлечь из приведённой 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; } }

Комментариев нет:

Отправить комментарий