【问题标题】:Rapidjson output to string not workingRapidjson 输出到字符串不起作用
【发布时间】:2012-12-12 10:02:03
【问题描述】:

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

【问题讨论】:

    标签: c++ rapidjson


    【解决方案1】:

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

    变化

    Writer<FileStream> writer(buffer);
    

    Writer<StringBuffer> writer(buffer);
    

    解决问题。

    【讨论】:

      【解决方案2】:

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

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

      在这里,您可以获得stringstd::string 的价值。 上面我使用std::string 来获取价值。 这行得通...

      【讨论】:

        【解决方案3】:

        根据您的编译器建议,您必须在以下位置修改代码:

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

        或者:

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

        【讨论】:

        • 不。那也行不通。错误命令没有提出候选函数,这意味着我什至没有接近。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        相关资源
        最近更新 更多