C で JSON を解析するための多くのライブラリを見てきましたが、ファイル ストリームから直接読み取って解析できるものはありません。Yajl、cjson などのすべてのそのようなライブラリの問題は、ファイル内の json ドキュメントが巨大な場合、まずそのすべてをメモリ バッファに読み込んでから、これらのライブラリによって提供される API を実行して解析する必要があることです。
多くの場合、APIは次のようになります
cJSON *cJSON_Parse(const char *value)
char* をバッファに取ります。
ファイルが非常に大きくなる可能性があり、ファイルのサイズが事前にわからないため、それを避けたいと思います。さらに、これらのライブラリは、値を取得するために実際のバッファー内のオブジェクト、配列への参照を維持するため、元のバッファーを解放できません。
ファイル ストリームから直接読み取って解析できる JSON 解析ライブラリはありますか?