#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); std::string str = parseString(val, pos);
if (str == "false") if (str == "false")
return false; return false;
else if (str == "true")
if (str == "true")
return true; return true;
else if (str == "null")
return Var();
bool isNumber = false; bool isNumber = false;
bool isSigned = false; bool isSigned = false;

View File

@ -2623,9 +2623,9 @@ void VarTest::testJSONDeserializeString()
a = Var::parse(tst); a = Var::parse(tst);
assertTrue (a.toString() == "{ \"a\": \"1\", \"b\": \"2\" }"); 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); 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 }");
} }