如何在 RapidJSON 中将 JSON 写入 cout

RapidJSON 不提供将 JSON 序列化到 cout(= stdout)的直接方法,但你可以使用 OStreamWrapper 来实现:

rapidjson_ostream_example.cpp
#include <rapidjson/writer.h>
#include <rapidjson/ostreamwrapper.h>
// ...
OStreamWrapper out(cout);
Writer<OStreamWrapper> writer(out);
doc.Accept(writer);

完整示例:

rapidjson_full_example.cpp
#include <iostream>
#include <rapidjson/document.h>
#include <rapidjson/writer.h>
#include <rapidjson/ostreamwrapper.h>
using namespace rapidjson;
using namespace std;

int main() {
    // 生成文档:{"text": "Hello JSON!"}
    Document doc;
    doc.SetObject(); // 使 doc 成为对象!
    doc.AddMember("text", "Hello JSON!", doc.GetAllocator());
    // 写入 stdout
    OStreamWrapper out(cout);
    Writer<OStreamWrapper> writer(out);
    doc.Accept(writer);
}

Check out similar posts by category: C/C++