我在C中看到了許多用於解析JSON的庫,但它們都不能直接從文件流中讀取和解析。所有這些庫如Yajl,cjson的問題是,如果文件中的json文件很大,那麼您必須首先將所有這些讀入內存緩衝區,然後運行這些庫提供的API來解析它。C庫直接從文件流中讀取和解析JSON
有API的經常看起來像
cJSON *cJSON_Parse(const char *value)
這需要一個char *的緩衝區。
我想避免這種情況,因爲我的文件可能非常大,我不能提前知道文件的大小。而且,這些庫保持對實際緩衝區中的對象,數組的檢索,以便我不能釋放原始緩衝區。
有沒有可以直接從文件流中讀取和解析的JSON解析庫?
看看這些,如果你還沒有:[jsonsl](https://github.com/mnunberg/jsonsl),[Jansson](http://www.digip。 org/jansson /),[cson](http://fossil.wanderinghorse.net/repos/cson/index.cgi/index),[json-c](https://github.com/json-c/json -c),[json-parser](https://github.com/udp/json-parser),[jsmn](http ://zserge.bitbucket.org/jsmn.html)。我沒有看過他們的代碼。 –