Это краткая шпаргалка о том, как просто изучить ответ JSON из поиска Cloudant в Java. Я нашел разные примеры, но эти примеры были (более или менее) старыми примерами, где я пропустил некоторые фрагменты, и в конце для меня документация Java EE была лучшим ресурсом для ее реализации.
В JSON Я хотел проверить, был ли JSON с вложенным массивом JSON, и этот массив также содержит вложенный JSON.
Формат JSON поискового ответа Cloudant
Здесь вы видите формат JSON, который я хотел изучить. Как я уже сказал: это JSON с вложенным массивом JSON, и массив также содержит вложенный JSON.
{ "total_rows": 1, "bookmark": "g2wAAAABaANkAClkYmNvcmVAZGI3LmJtLWNjLXVzLXNvdXRoLTExLmNsb3VkYW50Lm5ldGwAAAACYhAAAABiH____2poAkY_8AAAAAAAAGEAag", "rows": [ { "fields": { "url": "https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/", "customer": "your-blogs", "title": "Blue Cloud Mirror — (Don't) Open The Doors!", "type": "articles", "authorName": "Harald Uebele" }, "id": "7a5f27ce3ef66f895cb666e46ce45e55" } ] }
Это просто контент, который мне нужен из ответа JSON на поиск Cloudant :
- Имя автора
- Заглавие
- URL-адрес
Пример в формате JavaScript:
rows[0].fields.authorName rows[0].fields.title rows[0].fields.url
Java-код и импорт
Вот код Java и импорт, который я использовал.
Импорт
// JSON import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonArray; import javax.json.JsonReader; // Need to the string input import java.io.StringReader;
Код
Шаги:
- Получите значение ответа на поиск Cloudant
- Создайте простой объект JSON из значения ответа на поиск
- Извлечение вложенного массива JSON из простого объекта JSON
- Получите первую запись объекта JSON в массиве JSON
- Извлеките вложенный объект JSON из первой записи объекта JSON
- Извлеките соответствующие данные из вложенного объекта JSON.
// Cloudant search response value System.out.println("-->log: search_response.toString: " + search_response.toString()); // Create simple json object from response value JsonReader jsonReader = Json.createReader(new StringReader(search_response.toString())); JsonObject object = jsonReader.readObject(); jsonReader.close(); // Extract nested json array from simple json object JsonArray rows = object.getJsonArray("rows"); System.out.println("-->log: rows: " + rows); // Get the first json object entry in the json array JsonObject row_object = rows.getJsonObject(0); System.out.println("-->log: row_object: " + row_object); // Extract the nested json object from the first json object entry JsonObject fields = row_object.getJsonObject("fields"); System.out.println("-->log: fields: " + fields); // Extract the relevant data from the nested json object String url = fields.getString("url"); String authorName = fields.getString("authorName"); String title = fields.getString("title"); System.out.println("-->log: Author : " + authorName + " Title: " + " url: " + url);
Вывод на консоль для примера
Это пример вывода на консоль запущенного приложения.
-->log: search_response.toString: { "total_rows": 1, "bookmark": "g2wAAAABaANkAClkYmNvcmVAZGI3LmJtLWNjLXVzLXNvdXRoLTExLmNsb3VkYW50Lm5ldGwAAAACYhAAAABiH____2poAkY_8AAAAAAAAGEAag", "rows": [ { "fields": { "url": "https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/", "customer": "your-blogs", "title": "Blue Cloud Mirror — (Don't) Open The Doors!", "type": "articles", "authorName": "Harald Uebele" }, "id": "7a5f27ce3ef66f895cb666e46ce45e55" } ] } -->log: rows: [{"fields":{"url":"https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/","customer":"your-blogs","title":"Blue Cloud Mirror — (Don't) Open The Doors!","type":"articles","authorName":"Harald Uebele"},"id":"7a5f27ce3ef66f895cb666e46ce45e55"}] -->log: row_object: {"fields":{"url":"https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/","customer":"your-blogs","title":"Blue Cloud Mirror — (Don't) Open The Doors!","type":"articles","authorName":"Harald Uebele"},"id":"7a5f27ce3ef66f895cb666e46ce45e55"} -->log: fields: {"url":"https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/","customer":"your-blogs","title":"Blue Cloud Mirror — (Don't) Open The Doors!","type":"articles","authorName":"Harald Uebele"} -->log: Author : Harald Uebele Title: url: https://haralduebele.github.io/2019/02/17/blue-cloud-mirror-dont-open-the-doors/
Дополнительные полезные ссылки:
Вот несколько дополнительных ссылок, которые могут дать вам дополнительную точку зрения.
Другие полезные ссылки:
Вот несколько дополнительных ссылок, которые могут дать вам дополнительную точку зрения.
Резюме
Наконец, довольно легко обрабатывать JSON в Java. Я надеюсь, что это было полезно для вас, и давайте посмотрим, что будет дальше?
Приветствия,
Томас
Оригинал: “https://dev.to/tsuedbroecker/how-to-simply-examine-a-json-response-from-a-cloudant-search-in-java-1a30”