mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 00:38:27 +01:00
is<array>()
This commit is contained in:
@@ -144,6 +144,24 @@ TEST_CASE("JsonVariant::is<T>()") {
|
|||||||
CHECK(variant.is<MYENUM2>() == false);
|
CHECK(variant.is<MYENUM2>() == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("linked array") {
|
||||||
|
StaticJsonDocument<1024> doc2;
|
||||||
|
doc2[0] = "world";
|
||||||
|
variant.link(doc2);
|
||||||
|
|
||||||
|
CHECK(variant.is<JsonArray>() == false);
|
||||||
|
CHECK(variant.is<JsonArrayConst>() == true);
|
||||||
|
CHECK(variant.is<JsonVariant>() == true);
|
||||||
|
CHECK(variant.is<JsonVariantConst>() == true);
|
||||||
|
CHECK(variant.is<JsonObject>() == false);
|
||||||
|
CHECK(variant.is<JsonObjectConst>() == false);
|
||||||
|
CHECK(variant.is<int>() == false);
|
||||||
|
CHECK(variant.is<float>() == false);
|
||||||
|
CHECK(variant.is<bool>() == false);
|
||||||
|
CHECK(variant.is<const char *>() == false);
|
||||||
|
CHECK(variant.is<MYENUM2>() == false);
|
||||||
|
}
|
||||||
|
|
||||||
SECTION("JsonObject") {
|
SECTION("JsonObject") {
|
||||||
variant.to<JsonObject>();
|
variant.to<JsonObject>();
|
||||||
|
|
||||||
@@ -162,7 +180,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
|||||||
CHECK(variant.is<JsonVariantConst>() == true);
|
CHECK(variant.is<JsonVariantConst>() == true);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("JsonObject") {
|
SECTION("linked object") {
|
||||||
StaticJsonDocument<1024> doc2;
|
StaticJsonDocument<1024> doc2;
|
||||||
doc2["hello"] = "world";
|
doc2["hello"] = "world";
|
||||||
variant.link(doc2);
|
variant.link(doc2);
|
||||||
@@ -337,6 +355,24 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
|||||||
CHECK(cvariant.is<MYENUM2>() == false);
|
CHECK(cvariant.is<MYENUM2>() == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("linked array") {
|
||||||
|
StaticJsonDocument<1024> doc2;
|
||||||
|
doc2[0] = "world";
|
||||||
|
variant.link(doc2);
|
||||||
|
|
||||||
|
CHECK(cvariant.is<JsonArrayConst>() == true);
|
||||||
|
CHECK(cvariant.is<JsonVariantConst>() == true);
|
||||||
|
CHECK(cvariant.is<JsonArray>() == false);
|
||||||
|
CHECK(cvariant.is<JsonVariant>() == false);
|
||||||
|
CHECK(cvariant.is<JsonObject>() == false);
|
||||||
|
CHECK(cvariant.is<JsonObjectConst>() == false);
|
||||||
|
CHECK(cvariant.is<int>() == false);
|
||||||
|
CHECK(cvariant.is<float>() == false);
|
||||||
|
CHECK(cvariant.is<bool>() == false);
|
||||||
|
CHECK(cvariant.is<const char *>() == false);
|
||||||
|
CHECK(cvariant.is<MYENUM2>() == false);
|
||||||
|
}
|
||||||
|
|
||||||
SECTION("linked object") {
|
SECTION("linked object") {
|
||||||
StaticJsonDocument<1024> doc2;
|
StaticJsonDocument<1024> doc2;
|
||||||
doc2["hello"] = "world";
|
doc2["hello"] = "world";
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ struct Converter<ArrayRef> {
|
|||||||
|
|
||||||
static bool checkJson(VariantRef src) {
|
static bool checkJson(VariantRef src) {
|
||||||
VariantData* data = getData(src);
|
VariantData* data = getData(src);
|
||||||
return data && data->isArray();
|
return data && data->isArrayStrict();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace ARDUINOJSON_NAMESPACE
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ class VariantData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const CollectionData *asArray() const {
|
const CollectionData *asArray() const {
|
||||||
|
// TODO
|
||||||
|
// if (isPointer())
|
||||||
|
// return _content.asPointer->asArray();
|
||||||
return const_cast<VariantData *>(this)->asArray();
|
return const_cast<VariantData *>(this)->asArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,6 +111,13 @@ class VariantData {
|
|||||||
bool copyFrom(const VariantData &src, MemoryPool *pool);
|
bool copyFrom(const VariantData &src, MemoryPool *pool);
|
||||||
|
|
||||||
bool isArray() const {
|
bool isArray() const {
|
||||||
|
if (isPointer())
|
||||||
|
return _content.asPointer->isArray();
|
||||||
|
else
|
||||||
|
return isArrayStrict();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isArrayStrict() const {
|
||||||
return (_flags & VALUE_IS_ARRAY) != 0;
|
return (_flags & VALUE_IS_ARRAY) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user