diff --git a/extras/tests/JsonDocument/size.cpp b/extras/tests/JsonDocument/size.cpp index 4fbb6e23..683cc733 100644 --- a/extras/tests/JsonDocument/size.cpp +++ b/extras/tests/JsonDocument/size.cpp @@ -25,4 +25,21 @@ TEST_CASE("JsonDocument::size()") { REQUIRE(doc.size() == 2); } + + SECTION("linked array") { + StaticJsonDocument<128> doc2; + doc2.add(1); + doc2.add(2); + doc.as().link(doc2); + + REQUIRE(doc.size() == 2); + } + + SECTION("linked object") { + StaticJsonDocument<128> doc2; + doc2["hello"] = "world"; + doc.as().link(doc2); + + REQUIRE(doc.size() == 1); + } } diff --git a/src/ArduinoJson/Document/JsonDocument.hpp b/src/ArduinoJson/Document/JsonDocument.hpp index d9c4eb5b..62d53030 100644 --- a/src/ArduinoJson/Document/JsonDocument.hpp +++ b/src/ArduinoJson/Document/JsonDocument.hpp @@ -68,7 +68,7 @@ class JsonDocument : public Visitable, } size_t size() const { - return _data.size(); + return _data.resolve()->size(); } bool set(const JsonDocument& src) {