Fix conversion from static string to number

This commit is contained in:
Benoit Blanchon
2025-02-27 11:01:51 +01:00
parent 9f3cf04415
commit 67dd3120e6
3 changed files with 7 additions and 0 deletions

View File

@ -1,6 +1,11 @@
ArduinoJson: change log ArduinoJson: change log
======================= =======================
HEAD
----
* Fix conversion from static string to number
v7.3.0 (2024-12-29) v7.3.0 (2024-12-29)
------ ------

View File

@ -183,6 +183,7 @@ TEST_CASE("JsonVariant::as()") {
variant.set("42"); variant.set("42");
REQUIRE(variant.as<long>() == 42L); REQUIRE(variant.as<long>() == 42L);
REQUIRE(variant.as<double>() == 42);
REQUIRE(variant.as<JsonString>() == "42"); REQUIRE(variant.as<JsonString>() == "42");
REQUIRE(variant.as<JsonString>().isStatic() == true); REQUIRE(variant.as<JsonString>().isStatic() == true);
} }

View File

@ -199,6 +199,7 @@ class VariantData {
return static_cast<T>(extension->asInt64); return static_cast<T>(extension->asInt64);
#endif #endif
case VariantType::LinkedString: case VariantType::LinkedString:
return parseNumber<T>(content_.asLinkedString);
case VariantType::OwnedString: case VariantType::OwnedString:
return parseNumber<T>(content_.asOwnedString->data); return parseNumber<T>(content_.asOwnedString->data);
case VariantType::Float: case VariantType::Float: