2017-03-16 27 views
0

빠른 json을 사용하여 dict를 직렬화하고 키는 uint32이며 값은 긴 문자열입니다. 나는 마지막 json_str가 잘립니다 발견,빠른 json으로 긴 문자열을 serialize합니다.

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

그러나 : 코드입니다. 어느 누구도 잘라내기를 피하는 방법을 알고 있습니까?

+1

왜 파이썬에 태그를 지정 했습니까 ?? – abccd

+0

어떤 종류의 문자열을 직렬화합니까? 가능한 '\ 0'과 같은 이진 데이터가 포함되어 있습니까? – user2807083

+0

이 방법이 도움이 될지 확신 할 수 없습니다 ... StringBuffer 생성자에서 용량을 초과 (deafault)하도록 설정하십시오. – JustAnotherCoder

답변

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());