3

C で JSON を解析するための多くのライブラリを見てきましたが、ファイル ストリームから直接読み取って解析できるものはありません。Yajl、cjson などのすべてのそのようなライブラリの問題は、ファイル内の json ドキュメントが巨大な場合、まずそのすべてをメモリ バッファに読み込んでから、これらのライブラリによって提供される API を実行して解析する必要があることです。

多くの場合、APIは次のようになります

cJSON *cJSON_Parse(const char *value)

char* をバッファに取ります。

ファイルが非常に大きくなる可能性があり、ファイルのサイズが事前にわからないため、それを避けたいと思います。さらに、これらのライブラリは、値を取得するために実際のバッファー内のオブジェクト、配列への参照を維持するため、元のバッファーを解放できません。

ファイル ストリームから直接読み取って解析できる JSON 解析ライブラリはありますか?

4

2 に答える 2

3

http://lloyd.github.com/yajl/はおそらくあなたが探しているものです

于 2012-10-05T07:13:23.873 に答える
1

mmap()を使用してファイルをプロセスにマッピングし、返されたアドレスを使用してchar*操作を実行するだけで、それらすべてが便利になり、問題を解決する良い方法になります

于 2012-10-05T10:38:30.180 に答える