在ANSI C中解析JSON

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

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

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

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

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

jsmn是一个不错的选择,因为:
– 它与C98兼容
– 它不使用动态内存分配
– 它具有最小的开销
– 它只需要一次传递来解析JSON数据
– 它没有依赖关系,甚至libc
– 它是在MIT许可下分发的,因此您可以在专有项目中使用它

尝试使用json-c是最常见的之一,它是开源的,也适用于Windows(Win32)。

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