Метод parseObject()
выделяет и заполняет JsonObject (с которым вы можете работать) из строки JSON.
"JsonObject" в вашем примере кода называется dataRoot
и определяется с помощью
JsonObject& dataRoot = dataBuffer.parseObject(input);
, где dataBuffer
происходит от StaticJsonBuffer<512> dataBuffer;
, которая является точкой входа для использования библиотеки ArduinoJson
, и
, где input
имеет значение строки JSON "{\"temperature\":\"26\"}"
, которая соответствует стандартному формату пары атрибут-значение JSON (вам нужна строка JSON для работы, а затем отправить ее на клиентскую сторону ).
После выполнения JsonObject& dataRoot = dataBuffer.parseObject(input);
вы получаете dataRoot
как объект со свойством с именем temperature
, и вы можете получить доступ к этому свойству с помощью dataRoot[String("temperature")]
Итак, три строки:
long Temperature = dataRoot[String("temperature")];
Temperature = (long)temperature;
dataRoot[String("temperature")] = Temperature;
используются для обновления значения атрибута temperature
тем, что считывается с датчика.
Немного запутывает в примере кода тот факт, что имя атрибута JSON равно temperature
, а также имя переменной для хранения температуры, считываемой с датчика, также temperature
. Это разные вещи.