2017-11-22 9 views
0

jsonオブジェクトの配列を持つjsonファイルがあります。私はrapidjson C++を使用しています。私は何をすべきか、現在jsonオブジェクトをファイルに追加するためのRapidJSON C++効率的でスケーラブルな方法

このファイル内にあるJSON配列に新しいオブジェクトを追加したい

は私がFILEREADストリームを使用してJSONオブジェクトでファイル全体を読んで、私は新しいメンバー(新しいJSONオブジェクトを追加することです)私は以前読んだその文書の配列内のAddMemberを使用しています。今、私はファイル内でこの新しいオブジェクトを上書きし、新しいオブジェクトのプロセスを繰り返します。

このソリューションはスケーラビリティがありません。誰かがrapidjsonやraw filestreamを使って他の解決策を指摘できますか?助けていただければ幸いです。

jsonを使用してインクリメンタルにファイルに追加するようなものがあります。 または他のスケーラブルなソリューションです。私のファイルサイズが時間とともに非常に大きくなるため、ファイル全体を毎回読み取ってから新しいオブジェクトを追加し、ファイル全体を書き換えてメモリとCPU時間を無駄にするからです。この1と

助けを私にしてください

+0

閉じる前に最後にオブジェクトを追加したい場合は、ファイルを読み込み、サブオブジェクトを追加して閉じるタグを追加します。 – Phil1970

答えて

0

そのための既製のライブラリがあれば、私は知りませんが、あなたがそれを行うことにした場合、自分は不可能ではありません。 いくつかの手順では:

1)RAMにすべてのJSONを読み込みます。 2)JSONを追加してログファイルに保存します 3)ログに書き込まれた要求後にJSONを更新します。 4)毎秒ブロックが変更され、すべてのJSONがディスクに書き込まれ、ログファイルが消去されます。 5 )ブロックを解除するには、 6に変更)後藤2つの

さらなる最適化をbできます

1)クラッシュ後(起動時にログファイルをチェック)、ログ要求 2を適用)あなたはJSONファイルを書き込むときは書き換えないでください最後に追加だけがあったかどうかを確認し、新しい部分だけを書き込んでください。 これはどのように発音しますか?

関連する問題