如何使用std :: string中的rapidjson进行解析? 我想尝试(json字符串有效,我查看了jsonlint.com)
Document document;
char * writable = new char[contentString.size() + 1];
std::copy(contentString.begin(), contentString.end(), writable);
writable[contentString.size()] = '\0'; // don't forget the terminating 0
std::cout<<writable<<"\n";
if (document.Parse<0>(writable).HasParseError())
return 1;
contentString 是我的 json std :: string ,但是当我开始时,我总是会收到错误(返回1 )。 我也试过没有size()+ 1和'\ 0',但没有(绝望的测量编程)。 任何人都可以帮助我吗?
答案 0 :(得分:4)
你试过吗
if (document.Parse<0>(contentString.c_str()).HasParseError())
return 1;
因为,从文档中,我看不出为什么你想要任何“可写”......
答案 1 :(得分:4)
如果contentString是std :: string,请尝试
document.Parse<0>(contentString.c_str()).HasParseError()
如果contentString是char *,请尝试
document.Parse<0>(contentString).HasParseError()
并且您最好发布原始代码段
答案 2 :(得分:4)
尝试使用parse std :: string
std::string str = "{ \"hello\" : \"world\" }";
copiedDocument.Parse<0>(str.c_str());
答案 3 :(得分:2)
对我来说,发送json的字符串有错误, 您正确使用它,我建议您尝试发送它:
const char json[] = "{ \"hello\" : \"world\" }";
看看它是否有效,如果是这样,显然它是一个缓冲问题..你可以从那里继续我肯定