我想将 JSON 编码的数据读入 C 结构。json数据的结构是事先知道的,比较扁平,被一些C struct typedefs模仿。第三级左右的数组包含一个非常长的 JSON 对象列表,必须一次处理一个。
该代码旨在在非常受限的系统上运行,因此库不应动态分配内存。
我知道有Crockford 的 JSON 库列表,但我不太确定哪一个最适合所述问题。
我想将 JSON 编码的数据读入 C 结构。json数据的结构是事先知道的,比较扁平,被一些C struct typedefs模仿。第三级左右的数组包含一个非常长的 JSON 对象列表,必须一次处理一个。
该代码旨在在非常受限的系统上运行,因此库不应动态分配内存。
我知道有Crockford 的 JSON 库列表,但我不太确定哪一个最适合所述问题。
试试jsmn lib,我喜欢它可以解析任何只有两个 malloc 的 json 文件。
jsmn 是一个用于解析 JSON 数据格式的简约库。它可以很容易地用于小型项目,也可以集成到嵌入式系统中。
jsmn 是一个不错的选择,因为:
- 它与 C89 编译器版本兼容
- 它不使用动态内存分配
- 它具有最小的开销
- 它只需要一次解析JSON数据
- 它没有依赖关系,甚至是 libc
- 它是在 MIT 许可下分发的,因此您可以在您的专有项目中使用它
尝试使用json-c是最常见的一种,它是开源的,也可以在 Windows (Win32) 上运行。
JSON-C 实现了一个引用计数对象模型,使您可以轻松地在 C 中构造 JSON 对象,将它们输出为 JSON 格式的字符串,并将 JSON 格式的字符串解析回 JSON 对象的 C 表示形式。