Выборочный парсинг json
- Войдите на сайт для отправки комментариев
Чт, 10/02/2022 - 14:28
Добрый день! Получаю в топик разный json формата {"temp":"value"} и {"hum":"value"}. Проблема в том что обработчик зануляет значение value у hum если отправлен json temp и наоборот. Как так сделать, что бы обработчик проверил наличие и не трогал значения если они не пришли.
DynamicJsonBuffer jsonBuffer; JsonObject& json = jsonBuffer.parseObject(payload); temp = json["set_temperature"]; hum = json["hum1"];
Описание и код упростил для понимания, если послать оба значения сразу, то все окей, но нужно по одному.
https://arduinojson.org/v6/api/jsonvariant/containskey/
А должно быть по другому? Если key-value отсутствует или не корректно, парсер подсовывает default value (0 для данного типа)
https://arduinojson.org/v6/api/jsonvariant/containskey/
Пишут, что так будет быстрее:
Если результат помещается в указатель, то быстрее. А если в числовую переменную, то nullptr там не не к месту вроде.
Работает, тема закрыта спасибо огромное!