ArduinoJson проверка на существования поля
- Войдите на сайт для отправки комментариев
Пт, 06/12/2019 - 15:58
Подскажите пожалуйста, как можно проверить, существует ли данное поле в json ответе? Приходит динамическая строка json с настройками. Может прилететь как один параметр, так и несколько параметров, как это можно отследить?
Парсить, смотреть что прилетело. Можно попробовать угадать. Очень странный вопрос. Может тему для новичков сразу почитать?
В библиотеке ArduinoJson нет примера enumeration, везде сразу берут захардкоженные имена полей, поэтому мы ещё долго будем видеть такие вопросы. :)
char json[] = "{\"first\":\"hello\",\"second\":\"world\"}"; DynamicJsonDocument doc(1024); deserializeJson(doc, json); JsonObject root = doc.as<JsonObject>(); for (JsonPair kv : root) { Serial.println(kv.key().c_str()); Serial.println(kv.value().as<char*>()); }Для версии библиотеки 5.x /src/ArduinoJson/JsonObject.hpp
// Tells weither the specified key is present and associated with a value. // // bool containsKey(TKey); // TKey = const std::string&, const String& template <typename TString> bool containsKey(const TString& key) const { return findKey<const TString&>(key) != end(); }Для версии 6.x уже в ObjectRef.hpp, аналогично containsKey с той-же сигнатурой.
во, аж целая есть функция ))
и бук вообще полезный, только кто ж его читать из новичков будет