special threatment for null,true,false because they are non valid json
This commit is contained in:
parent
6c7bee0624
commit
21c10de8c2
1 changed files with 14 additions and 2 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue