Rapidjson输出到字符串不起作用

时间:2012-12-12 10:02:03

标签: c++ rapidjson

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

3 个答案:

答案 0 :(得分:6)

昨晚我编写这段代码时,我肯定已经累了。

更改

Writer<FileStream> writer(buffer);

Writer<StringBuffer> writer(buffer);

解决了这个问题。

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:0)

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

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

或者:

 StringBuffer* buffer;
 Writer<FileStream> writer(buffer);
相关问题