2

我正在尝试使用 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 问题时推荐了这种方法。

4

3 回答 3

6

昨晚写这段代码的时候,我一定是累了。

改变

Writer<FileStream> writer(buffer);

Writer<StringBuffer> writer(buffer);

解决问题。

于 2012-12-12T10:17:24.920 回答
4

尝试使用rapidjson::StringBufferandrapidjson::Writer获取字符串输出。

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

string在这里,您可以同时获得价值std::string。以上我用于std::string获取价值。这有效...

于 2014-04-11T10:29:38.320 回答
0

正如您的编译器建议的那样,您必须在以下位置修改代码:

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

或者:

 StringBuffer* buffer;
 Writer<FileStream> writer(buffer);
于 2012-12-12T10:10:22.407 回答