special threatment for null,true,false because they are non valid json

This commit is contained in:
Jonas Schnelli 2015-05-10 14:49:18 +02:00
parent 6c7bee0624
commit 21c10de8c2

View file

@ -11,6 +11,8 @@
#include <set> #include <set>
#include <stdint.h> #include <stdint.h>
#include <boost/algorithm/string/case_conv.hpp> // for to_lower()
using namespace std; using namespace std;
using namespace json_spirit; using namespace json_spirit;
@ -134,9 +136,19 @@ Array RPCConvertValues(const std::string &strMethod, const std::vector<std::stri
// parse string as JSON, insert bool/number/object/etc. value // parse string as JSON, insert bool/number/object/etc. value
else { else {
//according to rfc4627 null, true, false are not valid json strings
Value jVal; Value jVal;
if(strVal == "null")
jVal.setNull();
else if(strVal == "true")
jVal.setBool(true);
else if(strVal == "false")
jVal.setBool(false);
else
{
if (!jVal.read(strVal)) if (!jVal.read(strVal))
throw runtime_error(string("Error parsing JSON:")+strVal); throw runtime_error(string("Error parsing JSON:")+strVal);
}
params.push_back(jVal); params.push_back(jVal);
} }
} }