2012-12-12 56 views
2

我試圖用rapidjson輸出自己的字符串保存到數據庫,使用下面的代碼:Rapidjson輸出字符串不工作

StringBuffer buffer; 
Writer<FileStream> writer(buffer); 
rest.Accept(writer); 
string reststring = buffer.GetString(); 

,其中剩下的就是rapidjson ::文檔。

不過,我得到以下錯誤:

no matching function for call to ‘rapidjson::Writer<rapidjson::FileStream>::Writer (rapidjson::StringBuffer&)’. 

因爲rapidjson筆者建議在回答這個方法到以前的SO問題,這是奇怪的。

回答

6

我一定是在昨晚9累了的時候,我寫這段代碼。

更改

Writer<FileStream> writer(buffer); 

Writer<StringBuffer> writer(buffer); 

解決了這個問題。

0

當你的編譯器的建議,你必須修改你的代碼:

StringBuffer buffer; 
Writer<FileStream> writer(&buffer); 

或者:

StringBuffer* buffer; 
Writer<FileStream> writer(buffer); 
+0

沒有。那也不管用。錯誤命令沒有提供候選功能,這意味着我甚至沒有關閉。 –

4

嘗試使用rapidjson::StringBufferrapidjson::Writer獲取字符串輸出。

rapidjson::StringBuffer buffer; 
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); 
rest.Accept(writer); 
std::string str = buffer.GetString(); 

在這裏,您可以在兩個string獲得價值以及std::string。 以上我使用std::string獲取價值。 This Works ...