C++ 如何在文件中添加rapidjson::文档

C++ 如何在文件中添加rapidjson::文档,c++,rapidjson,C++,Rapidjson,我需要解析一个文件,获取一些数据并使用RapidJson将它们写入另一个文件 现在我可以检索值并将它们放入文档中。我唯一的问题是在文件中插入该文档: FILE * pFile = fopen ("read.json" , "r"); FILE * wFile = fopen ("Test.json" , "w"); if (pFile != NULL) { rapidjson::FileStream is

我需要解析一个文件,获取一些数据并使用RapidJson将它们写入另一个文件

现在我可以检索值并将它们放入文档中。我唯一的问题是在文件中插入该文档:

FILE * pFile = fopen ("read.json" , "r");

FILE * wFile = fopen ("Test.json" , "w");

if (pFile != NULL)
{
    rapidjson::FileStream is(pFile);
    rapidjson::Document document;
    document.ParseStream<0>(is);
    string mMeshID = a.GetString();
    //how to add that document to wfile
    fclose (pFile);
}
FILE*pFile=fopen(“read.json”,“r”);
文件*wFile=fopen(“Test.json”,“w”);
if(pFile!=NULL)
{
文件流是(pFile);
rapidjson::文档;
解析流(is);
字符串mMeshID=a.GetString();
//如何将该文档添加到wfile
fclose(pFile);
}
有没有办法在文件中编写RapidJson::文档

编辑:我找到的唯一方法是:

    // Convert JSON document to string
    GenericStringBuffer< UTF8<> > buffer;
    Writer<GenericStringBuffer< UTF8<> > > writer(buffer);
    doc.Accept(writer);
    const char* str = buffer.GetString();
    fprintf(wFile, "%s", str);
    fclose(wFile);
//将JSON文档转换为字符串
GenericStringBuffer缓冲区;
Writer>Writer(缓冲区);
接受文件(作者);
const char*str=buffer.GetString();
fprintf(wFile,“%s”,str);
fclose(wFile);
您最好使用

fwrite (buffer.GetString(), buffer.GetSize(), 1, wFile);
它更安全(如果缓冲区不是空终止的)和更快(没有strlen)。

除此之外,代码中没有错误检查,这很好,应该将JSON写入文件NP。

在提出这个问题后,有更好的文档


使用
FileWriteStream
而不是
StringBuffer
可以减少内存使用
FileWriteStream
使用固定大小的缓冲区(可以存储在堆栈中),而
StringBuffer
需要将整个JSON存储在(堆)内存中。对于big JSON来说,这是一个很大的不同。

最后做了一些字符串化,但我似乎在用户指南之外找不到任何文档,所以这可能是您想要的,也可能不是您想要的。但仍然不知道如何在文件中编写我不是绝对确定,但我敢打赌,他们用来写入标准输出的文件流也可以写入其他文件…:)在教程的最后,他们将文档写入
文件流(stdout)
stdout
是一个
文件*
,所以只要尝试
文件流(wFile)
缓冲区即可。GetString()是安全的