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

时间:2017-03-16 11:47:42

标签: c++ json rapidjson

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

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

但是,我发现最后的json_str被截断了。有没有人知道如何避免截断?

1 个答案:

答案 0 :(得分:0)

如果假设由于长字符串中的零字符而导致截断,那么您可以通过停止使用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());