20

我想将 JSON 编码的数据读入 C 结构。json数据的结构是事先知道的,比较扁平,被一些C struct typedefs模仿。第三级左右的数组包含一个非常长的 JSON 对象列表,必须一次处理一个。

该代码旨在在非常受限的系统上运行,因此库不应动态分配内存。

我知道有Crockford 的 JSON 库列表,但我不太确定哪一个最适合所述问题。

4

2 回答 2

22

试试jsmn lib,我喜欢它可以解析任何只有两个 malloc 的 json 文件。

jsmn 是一个用于解析 JSON 数据格式的简约库。它可以很容易地用于小型项目,也可以集成到嵌入式系统中。

jsmn 是一个不错的选择,因为:

  • 它与 C89 编译器版本兼容
  • 它不使用动态内存分配
  • 它具有最小的开销
  • 它只需要一次解析JSON数据
  • 它没有依赖关系,甚至是 libc
  • 它是在 MIT 许可下分发的,因此您可以在您的专有项目中使用它
于 2012-05-20T17:52:04.357 回答
4

尝试使用json-c是最常见的一种,它是开源的,也可以在 Windows (Win32) 上运行。

JSON-C 实现了一个引用计数对象模型,使您可以轻松地在 C 中构造 JSON 对象,将它们输出为 JSON 格式的字符串,并将 JSON 格式的字符串解析回 JSON 对象的 C 表示形式。

于 2012-05-20T15:10:48.987 回答