diff --git a/src/ArduinoJson/Data/JsonVariantData.hpp b/src/ArduinoJson/Data/JsonVariantData.hpp index 79f7b168..cd4c9d0e 100644 --- a/src/ArduinoJson/Data/JsonVariantData.hpp +++ b/src/ArduinoJson/Data/JsonVariantData.hpp @@ -30,13 +30,6 @@ struct JsonVariantData { content.asFloat = value; } - void setInteger(JsonInteger value) { - if (value > 0) - setPostiveInteger(static_cast(value)); - else - setNegativeInteger(static_cast(-value)); - } - void setNegativeInteger(JsonUInt value) { type = JSON_NEGATIVE_INTEGER; content.asInteger = value; diff --git a/test/JsonDeserializer/deserializeJsonValue.cpp b/test/JsonDeserializer/deserializeJsonValue.cpp index c6626a27..c21ee327 100644 --- a/test/JsonDeserializer/deserializeJsonValue.cpp +++ b/test/JsonDeserializer/deserializeJsonValue.cpp @@ -87,6 +87,14 @@ TEST_CASE("deserializeJson(DynamicJsonDocument&)") { REQUIRE(doc.as() == false); } + SECTION("0") { + DeserializationError err = deserializeJson(doc, "0"); + REQUIRE(err == DeserializationError::Ok); + REQUIRE(doc.is() == true); + REQUIRE(doc.as() == 0); + REQUIRE(doc.as() == "0"); // issue #808 + } + SECTION("NaN") { DeserializationError err = deserializeJson(doc, "NaN"); REQUIRE(err == DeserializationError::Ok); diff --git a/test/JsonSerializer/JsonVariant.cpp b/test/JsonSerializer/JsonVariant.cpp index 691a0fa2..b2287d77 100644 --- a/test/JsonSerializer/JsonVariant.cpp +++ b/test/JsonSerializer/JsonVariant.cpp @@ -45,6 +45,10 @@ TEST_CASE("serializeJson(JsonVariant)") { check(3.1415927, "3.1415927"); } + SECTION("Zero") { + check(0, "0"); + } + SECTION("Integer") { check(42, "42"); }