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