#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 Вот тут пример использования
Комментариев нет:
Отправить комментарий