From a4307f5cd103667cb5bea4a74d116b7a1086f915 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 11 Mar 2022 18:54:51 +0100 Subject: [PATCH] as() --- extras/tests/JsonVariant/as.cpp | 11 +++++++++++ src/ArduinoJson/Variant/VariantImpl.hpp | 2 ++ 2 files changed, 13 insertions(+) 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; }