Arduino:
Работа с JSON

Как:

Для работы с JSON на Arduino вам понадобится библиотека ArduinoJson. Установите её через Менеджер Библиотек: Эскиз > Подключить Библиотеку > Управление Библиотеками…, затем найдите “ArduinoJson” и установите.

Вот простой пример разбора JSON:

#include <ArduinoJson.h>

const char* json = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";

void setup() {
  Serial.begin(9600);

  DynamicJsonDocument doc(1024);
  deserializeJson(doc, json);

  const char* sensor = doc["sensor"];
  long time = doc["time"];
  double широта = doc["data"][0];
  double долгота = doc["data"][1];
  
  Serial.print("Датчик: ");
  Serial.println(sensor);
  Serial.print("Время: ");
  Serial.println(time);
  Serial.print("Широта: ");
  Serial.println(широта, 6);
  Serial.print("Долгота: ");
  Serial.println(долгота, 6);
}

void loop() {
  // В этом примере не используется.
}

Пример вывода:

Датчик: gps
Время: 1351824120
Широта: 48.756080
Долгота: 2.302038

Создание JSON:

#include <ArduinoJson.h>

void setup() {
  Serial.begin(9600);

  DynamicJsonDocument doc(1024);

  doc["sensor"] = "gps";
  doc["time"] = 1351824120;
  doc["data"][0] = 48.756080;
  doc["data"][1] = 2.302038;

  serializeJson(doc, Serial);
}

void loop() {
  // В этом примере не используется.
}

Пример вывода:

{"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}

Подробнее

Библиотека ArduinoJson, авторства Benoit Blanchon, стала де-факто стандартом для манипуляции с JSON в Arduino. JSON приобрёл популярность за свою простоту по сравнению с XML, который был широко использован ранее. Существуют альтернативы, такие как MsgPack, но JSON остаётся в фаворитах за его текстовую читаемость и широкое применение. С точки зрения реализации, убедитесь, что вы выделили достаточно памяти для DynamicJsonDocument, чтобы избежать переполнения и используйте StaticJsonDocument для статических или объектов JSON известного размера.

Смотри также