多线程下prettywriter和stringbuffer构造json不完整
使用如下方式构造json:
rapidjson::StringBuffer buf;
rapidjson::PrettyWriter<rapidjson::StringBuffer>
writer(buf);
构造过程略去;
std::string strJSON=buf.GetString();
printf(strJSON.c_str());
发现json较大时(大于1M),多次出现json格式后面部分不完整,残缺。在不大的时候,则从来不出现此类情况。试问,rapidjson在构造大json时有限制吗?怎么解决。
不应该有问题。 你看看能不能做个能重现问题的测试用例?
不应该有问题。 你看看能不能做个能重现问题的测试用例?
比较独立的模块,函数是可重入的没问题,组装json有不完整的情况发生,都是大json时候出现,也有成功组装的时候,json不断加大,则出现越显著。单线程测试还有一个现象,写法和前面一样,打印到控制台输出没问题,但是执行string strJSON=buf.GetString();后,通过查看调试状态看变量strJSON就发现json是不完整的,不知是rapidjson原因还是调试器原因。
遇到了这个问题+1。输出一个文件时,偶发性的会有错误,大约3800行的一个json文件。有时只输出到1800行,有时输出到3000行,无法稳定重现。错误应该发生在strBuffer.GetString()处。
遇到了这个问题+1。输出一个文件时,偶发性的会有错误,大约3800行的一个json文件。有时只输出到1800行,有时输出到3000行,无法稳定重现。错误应该发生在strBuffer.GetString()处。
============================================ 在构造过程就出现了问题,跟踪进去发现最后无法加入json键名或值,_stack无法增长,top无法上浮,里面的字符串不能自适应加大了
我遇到类似问题,我这边的原因是:AddMember插入一个浮点数变量为nan时,输出的json不完整。FYI