diff --git a/extras/tests/JsonVariant/memoryUsage.cpp b/extras/tests/JsonVariant/memoryUsage.cpp index 486772c8..5c18b906 100644 --- a/extras/tests/JsonVariant/memoryUsage.cpp +++ b/extras/tests/JsonVariant/memoryUsage.cpp @@ -39,7 +39,7 @@ TEST_CASE("JsonVariant::memoryUsage()") { REQUIRE(var.memoryUsage() == doc.memoryUsage()); } - SECTION("ignore size of link document") { + SECTION("ignore size of linked document") { StaticJsonDocument<128> doc2; doc2["hello"] = "world"; var.link(doc2); diff --git a/extras/tests/JsonVariant/remove.cpp b/extras/tests/JsonVariant/remove.cpp index c744e19b..adaa0761 100644 --- a/extras/tests/JsonVariant/remove.cpp +++ b/extras/tests/JsonVariant/remove.cpp @@ -39,4 +39,24 @@ TEST_CASE("JsonVariant::remove()") { REQUIRE(var.as() == "{\"a\":1}"); } + + SECTION("linked array") { + StaticJsonDocument<128> doc2; + doc2[0] = 42; + var.link(doc2); + + var.remove(0); + + CHECK(var.as() == "[42]"); + } + + SECTION("linked object") { + StaticJsonDocument<128> doc2; + doc2["hello"] = "world"; + var.link(doc2); + + var.remove("hello"); + + CHECK(var.as() == "{\"hello\":\"world\"}"); + } } diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 85adabd2..7bbe746f 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -177,13 +177,13 @@ class VariantData { } void remove(size_t index) { - if (isArray()) + if (isArrayStrict()) _content.asCollection.removeElement(index); } template void remove(TAdaptedString key) { - if (isObject()) + if (isObjectStrict()) _content.asCollection.removeMember(key); }