Перейти к содержанию

Уроки ESP32: перевод в формат JSON


Рекомендуемые сообщения

Введение.

Цель данного поста – объяснить, как сформировать сообщение в формате JSON, используя MicroPython и библиотеку ujson на ESP32. О том, как запустить MicroPython на ESP32 рассказано здесь, а как разобрать/распарсить JSON, смотрите предыдущий пост.

 

Код.

Подключаем модуль ujson при помощи следующей команды:

import ujson

Ниже показан пример сообщения, которое мы постараемся в итоге сформировать. В данном примере мы моделируем возможное сообщение от IoT устройства некоторого типа (например, датчика температуры), передающего какие-то измеренные значения:

{
"deviceType": "Temperature",
"values": [23,22,25]
}

Нам надо сохранить структуру этого сообщения в одной переменной, потому будем использовать объект типа словарь (англ. версия здесь). Он позволяет получать значение по ключу и очень хорошо подходит для структуры JSON.

Начнём с создания пустого объекта типа словарь в переменной dict. После присвоим ключу “deviceType” в качестве значения строку “Temperature”, а ключу  “values” присвоим список со значениями, показанными в JSON. Обратите внимание на то, что значением в словаре Python может быть даже такой объект, как список.

После присвоения выведем содержимое переменной dict, чтобы убедиться, что значения присвоены верно.

dict = {}
dict["deviceType"] = "Temperature"
dict["values"] = [23,22,25]

print(dict)

На Рисунке 1 показано, что должно получиться в результате. Как видим, у нас есть структура словаря с некоторыми парами ключ-значение. Выведенное строковое представление словаря Python уже очень похоже на JSON.

5bcb8eaf42232_Figure1ContentofthePythondictionary..png.410134a374e4294a6676309efa944ade.png

Рисунок 1. Содержание словаря Python.

Остаётся перевести словарь в JSON-строку, используя функцию dumps из модуля ujson. Этот метод принимает в качестве аргумента словарь, а возвращает его представление в формате JSON. Выведем то, что возвращает эта функция.

encoded = ujson.dumps(dict)
print(encoded)

Окончательный результат показан на Рис. 2. То, что получилось, очень похоже на строковое представление словаря, которое показано на Рис.1, но теперь ключи и значения заключены в двойные кавычки, а не в одинарные. То есть в полном соответствии с форматом JSON.

5bcb8fff1beb1_Figure2FinaloutputoftheJSONencodingprogram..png.26be0050b25a6499a8fa5946f4bc4a9b.png

Рисунок 2. Окончательный результат работы программы расшифровки JSON.

Важно: Этот пост - перевод статьи, написанной Nuno Santos из Лиссабона (Португалия), инженером в области электроники и компьютерной техники. Можно познакомиться с его оригинальными статьями здесь. Он написал ещё много полезных уроков и проектов про ESP32, ESP8266, и, если интересно, можно почитать его блог.

У DFRobot есть много других обучающих статей по связке ESP32 с ардуино и готовых проектов на основе ESP32.


 

Изменено пользователем DFRobot
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...