我在JSONcpp中有一个根,具有像这样的字符串值。JSONCPP正在向字符串添加额外的双引号
Json::Value root;
std::string val = "{\"stringval\": \"mystring\"}";
Json::Reader reader;
bool parsingpassed = reader.parse(val, root, false);
现在,当我试图使用这段代码检索这个值。
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, root["stringval"]);
这里走出来的字符串理想应该得到含:
"mystring"
,而它给输出这样的:顺便说一下
"\"mystring\"" \\you see this in debug mode if you check your string content
如果打印使用stdout
它将这个值被打印像这样的东西::
"mystring" \\ because \" is an escape sequence and prints " in stdout
应该打印像这样stdout
:
mystring \\Expected output
任何想法转换JSON输出时的std :: string如何避免这种产出的? 请避免建议fastwriter,因为它也增加了换行符,并且它也弃用了API。
约束:我不想通过去除多余的\”与字符串操作,而我愿意修改字符串知道我我怎么能做到这一点与JSONcpp直接
This is StreamWriterBuilder Reference code which I have used
。
我无法重现此输出。 –
我正在使用JsonCPP 1.7.4 – spt025
使用当前的1.8.0进行测试,并且仅使用1.7.4进行了测试。仍然不能。 –