我已经看到了许多用于在 C 中解析 JSON 的库,但它们都不能直接从文件流中读取和解析。所有此类库(例如 Yajl、cjson)的问题在于,如果文件中的 json 文档很大,那么您必须首先将所有这些内容读入内存缓冲区,然后运行这些库提供的 API 来解析它。
API 通常看起来像
cJSON *cJSON_Parse(const char *value)
它将 char* 带到缓冲区。
我想避免这种情况,因为我的文件可能非常大,而且我事先不知道文件的大小。此外,这些库维护对实际缓冲区中的对象、数组的引用以检索值,因此我无法释放原始缓冲区。
是否有可以直接从文件流中读取和解析的 JSON 解析库?