// ArduinoJson - https://arduinojson.org // Copyright © 2014-2022, Benoit BLANCHON // MIT License #include #include #include #include #include namespace ARDUINOJSON_NAMESPACE { template struct Converter > { static void toJson(const std::vector& src, JsonVariant dst) { JsonArray array = dst.to(); for (T item : src) array.add(item); } static std::vector fromJson(JsonVariantConst src) { std::vector dst; for (T item : src.as()) dst.push_back(item); return dst; } static bool checkJson(JsonVariantConst src) { JsonArrayConst array = src; bool result = array; for (JsonVariantConst item : array) { if (!result) break; result = item.is(); } return result; } }; } // namespace ARDUINOJSON_NAMESPACE TEST_CASE("vector") { SECTION("toJson") { std::vector v = {1, 2}; StaticJsonDocument<128> doc; doc.set(v); REQUIRE(doc.as() == "[1,2]"); } SECTION("fromJson") { StaticJsonDocument<128> doc; doc.add(1); doc.add(2); auto v = doc.as >(); REQUIRE(v.size() == 2); CHECK(v[0] == 1); CHECK(v[1] == 2); } SECTION("checkJson") { StaticJsonDocument<128> doc; CHECK(doc.is >() == false); doc.add(1); doc.add(2); CHECK(doc.is >() == true); doc.add("foo"); CHECK(doc.is >() == false); } }