{

"kind": "youtube#channel",

"statistics": {

"viewCount": "30177125",

"commentCount": "313",

"subscriberCount": "251966",

"videoCount": "301"

}

}

]

}

Как можно видеть, items - это массив элементов, т.к. он содержит скобки []. Внутри есть объект statistics, а внутри него нужное нам поле subscriberCount.

Код чтения Json будет выглядеть вот так:

DynamicJsonBuffer jsonBuffer(16*1024);

JsonObject& parsed = jsonBuffer.parseObject(json);

if (parsed.success()) {

JsonArray& items = parsed["items"];

if (items.size()> 0) {

JsonObject& statistics = items[0]["statistics"];

long subscriberCount = statistics["subscriberCount"];

Serial.print("Number of subscribers: ");

Serial.println(subscriberCount);

}

} else {

Serial.println("Json parsing error");

}

Мы создаем объект типа JsonArray, и если он не пуст, обращаемся к элементу с первым номером (в Си массивы нумеруются с нуля, items[0] это первый элемент).

Задача решена! Код полностью выглядит так:

#include <WiFi.h>

#include <HTTPClient.h>

#include <ArduinoJson.h>

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату