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

このコードを書いたとき、私は昨夜 9 時に疲れていたに違いありません。

変化

Writer<FileStream> writer(buffer);

Writer<StringBuffer> writer(buffer);

問題を解決します。

于 2012-12-12T10:17:24.920 に答える
4

文字列出力の取得にrapidjson::StringBufferandを使用してみてください。rapidjson::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 に答える