1

ファイルを解析し、データを取得して、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);
}

ファイルに RapidJson::Document を書き込む方法はありますか?

編集:私が見つけた唯一の方法は:

    // 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);
4

2 に答える 2

1

FileWriteStreamこの質問が尋ねられた後については、より良いドキュメントがあります。

FileWriteStreamの代わりに使用するとStringBuffer、メモリ使用量を減らすことができます。JSON全体を(ヒープ)メモリに格納する必要がFileWriteStreamある一方で、固定サイズのバッファを使用します(スタックに格納できます)。StringBuffer大きなJSONの場合は大きな違いになります。

于 2015-12-06T04:24:38.447 に答える
0

使ったほうがいい

fwrite (buffer.GetString(), buffer.GetSize(), 1, wFile);

より安全 (バッファが null で終了していない場合) で高速です (strlen なし)。
それと、コードでエラー チェックが行われていないことを除けば、問題はなく、JSON をファイル NP に書き込む必要があります。

于 2014-04-04T07:15:14.340 に答える