From 50b12e2eb11fe312b8724b4138e9a00c0b55f37d Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 30 Mar 2022 21:30:30 +0200 Subject: [PATCH] Fix JsonDocument::size() --- extras/tests/JsonDocument/size.cpp | 17 +++++++++++++++++ src/ArduinoJson/Document/JsonDocument.hpp | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) 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) {