#3163: Correct Var::parse null value

This commit is contained in:
Günter Obiltschnig 2021-06-14 23:40:03 +02:00
parent 87d2edcbd2
commit 06fe07e7ad
2 changed files with 5 additions and 4 deletions

View File

@ -432,9 +432,10 @@ Var Var::parse(const std::string& val, std::string::size_type& pos)
std::string str = parseString(val, pos);
if (str == "false")
return false;
if (str == "true")
else if (str == "true")
return true;
else if (str == "null")
return Var();
bool isNumber = false;
bool isSigned = false;

View File

@ -2623,9 +2623,9 @@ void VarTest::testJSONDeserializeString()
a = Var::parse(tst);
assertTrue (a.toString() == "{ \"a\": \"1\", \"b\": \"2\" }");
tst = "{ \"message\": \"escape\\b\\f\\n\\r\\t\", \"path\": \"\\/dev\\/null\" }";
tst = "{ \"message\": \"escape\\b\\f\\n\\r\\t\", \"path\": \"\\/dev\\/null\", \"zero\": null }";
a = Var::parse(tst);
assertTrue(a.toString() == "{ \"message\": \"escape\\b\\f\\n\\r\\t\", \"path\": \"/dev/null\" }");
assertTrue(a.toString() == "{ \"message\": \"escape\\b\\f\\n\\r\\t\", \"path\": \"/dev/null\", \"zero\": null }");
}