我正在尝试使用rapidjson将自身输出到字符串以保存到数据库,使用以下代码:
StringBuffer buffer;
Writer<FileStream> writer(buffer);
rest.Accept(writer);
string reststring = buffer.GetString();
其中rest是一个rapidjson :: Document。
但是我收到以下错误:
no matching function for call to ‘rapidjson::Writer<rapidjson::FileStream>::Writer (rapidjson::StringBuffer&)’.
这很奇怪,因为rapidjson的作者在回答之前的SO问题时推荐了这种方法。
答案 0 :(得分:6)
昨晚我编写这段代码时,我肯定已经累了。
更改
Writer<FileStream> writer(buffer);
到
Writer<StringBuffer> writer(buffer);
解决了这个问题。
答案 1 :(得分:4)
尝试使用rapidjson::StringBuffer
和rapidjson::Writer
获取字符串输出。
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
rest.Accept(writer);
std::string str = buffer.GetString();
在这里,您可以同时获得string
和std::string
的价值。
上面我用std::string
获取了价值。
这有效......
答案 2 :(得分:0)
正如您的编译器建议的那样,您必须在以下位置修改代码:
StringBuffer buffer;
Writer<FileStream> writer(&buffer);
或者:
StringBuffer* buffer;
Writer<FileStream> writer(buffer);