C++ 使用快速json序列化长字符串将被截断

C++ 使用快速json序列化长字符串将被截断,c++,json,rapidjson,C++,Json,Rapidjson,我使用rapid json序列化dict,键是uint32,值是一个长字符串。代码是: rapidjson::StringBuffer(); rapidjson::Write>writer(缓冲区); root.Accept(writer); const char*json_str=buffer.GetString(); 但是,我发现最后的json\u str被截断了。有人知道如何避免截断吗?如果假设截断是由于长字符串中的零字符而发生的,那么您可以停止使用char*而改用std::string

我使用rapid json序列化dict,键是uint32,值是一个长字符串。代码是:

rapidjson::StringBuffer();
rapidjson::Write>writer(缓冲区);
root.Accept(writer);
const char*json_str=buffer.GetString();

但是,我发现最后的
json\u str
被截断了。有人知道如何避免截断吗?

如果假设截断是由于长字符串中的零字符而发生的,那么您可以停止使用
char*
而改用
std::string
来避免截断

rapidjson::StringBuffer buffer();                                                                                                                                     
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);  
root.Accept(writer);  
std::string json_str = std::string(buffer.GetString(), buffer.GetSize());
rapidjson::StringBuffer();
rapidjson::Writer-Writer(缓冲区);
root.Accept(writer);
std::string json_str=std::string(buffer.GetString(),buffer.GetSize());

为什么要标记Python??序列化哪种类型的字符串?它是否可能包含一些二进制数据,如
\0
?我不确定这是否有帮助。。。尝试在StringBuffer构造函数中设置大于DEAFULT的容量