1

rapidJSONJSONファイルの構築に使用したい。
そうするために(少なくとも)2つのオプションがあることに気付きました。
最初はrapidJSON::Writer直接使用しています:

StringBuffer s;
Writer<StringBuffer> writer(s);
writer.StartObject();
writer.String("hello");
...

もう1つは使用していrapidJSON::Documentます:

Document d;
d.SetObject();
d.AddMember("hello", "world", d.GetAllocator());
...

側面の使いやすさとサイズDocumentのより多くの型制御の明らかな違いに加えて、パフォーマンスの違いはありますか? Writer両方の割り当ては同じですか?

4

1 に答える 1

2

DocumentJSON ツリー (別名 DOM) をメモリに格納するためのデータ構造です。aを JSONWriterに文字列化 (ダンプ/シリアル化) するために必要です。Document

d.Accept(writer);

そのため、アプリケーションで JSON を記述するだけでよく、Writer簡単に適用できる場合は、JSON よりも優先されDocumentます。これは、Documentメモリ割り当てと追加のオーバーヘッドが必要なためです。

ただし、DocumentJSON の解析と変更はより簡単です。

PS RapidJSON の現在のバージョンでは、オブジェクト キーwriter.Key("hello")の代わりに使用することをお勧めします。writer.String("hello")

于 2014-12-12T01:32:37.420 に答える