Как взять данные из ответа CloseableHttpClient?

Как взять данные из ответа? Например хочу взять titel. Как мне это сделать? То что я получаю моим методом на скрине.

public static void main(String[] args) throws IOException {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpGet httpget = new HttpGet("https://videocdn.tv/api/short?api_token=92nAbf1f&id=6089");
        HttpResponse response = httpclient.execute(httpget);
        Scanner sc = new Scanner(response.getEntity().getContent());
        while(sc.hasNext()) {
            System.out.println(sc.nextLine());
        }

    }

Ответ от моего метода который я написал


Ответы (1 шт):

Автор решения: lampa

Вам отдается json объект в виде строки. Соответственно нужно строку распарсить в json.

Есть два пути: пойти по ветке объекта до нужного поля:

String json = EntityUtils.toString(response.getEntity());
JsonNode jsonNode = new JsonMapper().readTree(json);

for (Iterator<JsonNode> it = jsonNode.get("data").iterator(); it.hasNext(); ) {
    JsonNode data = it.next();
    System.out.println(data.get("title"));
}

Или воспользоваться маппингом сразу в java объекты (@Data - аннотация lombok, которая автоматически добавляет сеттеры, геттеры и прочее):

Добавим классы, описывающие ответ сервера:

@Data
private static class Result {
    private Boolean result;
    private List<Game> data;
}

@Data
private static class Game {
    private String title;
}

И маппер:

String json = EntityUtils.toString(response.getEntity());

Result result = new ObjectMapper().readValue(json, Result.class);

for (Game game : result.getData()) {
    System.out.println(game.getTitle());
}

В примерах я использовал библиотеку jackson, а точнее следующие зависимости:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.12.2</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.2</version>
</dependency>
→ Ссылка