diff --git a/extras/tests/JsonVariant/as.cpp b/extras/tests/JsonVariant/as.cpp index fdc24abe..43c30185 100644 --- a/extras/tests/JsonVariant/as.cpp +++ b/extras/tests/JsonVariant/as.cpp @@ -349,4 +349,15 @@ TEST_CASE("JsonVariant::as()") { CHECK(variant.as() == "hello"); } + + SECTION("linked bool") { + StaticJsonDocument<128> doc2; + variant.link(doc2); + + doc2.set(true); + CHECK(variant.as() == true); + + doc2.set(false); + CHECK(variant.as() == false); + } } diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index d1e1ae27..918f07a5 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -47,6 +47,8 @@ inline bool VariantData::asBoolean() const { return _content.asFloat != 0; case VALUE_IS_NULL: return false; + case VALUE_IS_POINTER: + return _content.asPointer->asBoolean(); default: return true; }