Разбор ответов JSON
Извлекайте поля с помощью ArduinoJson.
«Разбор ответов JSON» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.
Ответы — это просто текст
Ответ сервера приходит в виде одной длинной строки. Чтобы использовать содержащееся в ней значение, сначала нужно аккуратно извлечь его.
Почему не стоит искать вручную
Поиск в тексте с помощью indexOf ненадёжен. Настоящий анализатор JSON понимает структуру и безопасно предоставляет поля.
Познакомьтесь с ArduinoJson
Библиотека ArduinoJson преобразует строку JSON в объекты, значения которых можно читать по ключу. Установите её через менеджер библиотек.
#include <ArduinoJson.h>Создайте документ
Создайте JsonDocument для хранения разобранных данных. Это контейнер, который ArduinoJson заполнит за Вас.
JsonDocument doc;Разберите строку
Вызовите deserializeJson(), передав документ и текст ответа. Функция прочитает строку и заполнит документ.
deserializeJson(doc, body);Проверьте ошибки
deserializeJson возвращает ошибку, которую следует проверить. Некорректный или неполный JSON нужно обнаружить до того, как Вы начнёте доверять его полям.
if (deserializeJson(doc, body)) {
return; // parse failed
}Прочитайте поле по ключу
Получите значение по его ключу, как в словаре. Укажите ArduinoJson ожидаемый тип этого поля.
float temp = doc["temp"];Прочитайте вложенные значения
Для вложенного JSON объединяйте ключи в цепочку. Каждая пара скобок углубляет обращение на один уровень структуры и приближает Вас к нужному значению.
int id = doc["device"]["id"];Переберите массив
Если поле является JSON-массивом, его можно перебрать с помощью цикла for и по очереди прочитать каждый элемент.
for (JsonVariant v : doc["list"].as<JsonArray>()) {
}Выберите правильный размер документа
JsonDocument использует память. Сделайте его достаточно большим для Ваших данных, но помните, что объём RAM микроконтроллера ограничен.
Со строками нужно быть осторожными
Считайте разобранную строку действительной только пока существует исходный текст. Скопируйте её, если она должна сохраняться дольше.
Быстрая проверка
Какая функция преобразует текст JSON в документ, пригодный для чтения?
Итоги
Вы использовали ArduinoJson, чтобы разобрать ответ, проверили ошибки и прочитали поля и массивы по ключам. Исходный текст превратился в настоящие данные. 🎉
Изучай C++ с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Разбор ответов JSON» бесплатный?
Да — полный текст урока «Разбор ответов JSON» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разбор ответов JSON»?
Извлекайте поля с помощью ArduinoJson. Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?
Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Разбор ответов JSON»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?
Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Получение данных GET из API
- Отправка показаний датчиков POST-запросом
- Разбор ответов JSON
- Безопасное использование HTTPS