jansson

属性说明
风格DOM
许可证MIT
仓库https://github.com/akheron/jansson

核心特点:API 更严谨,错误处理更完善(每步操作返回错误码)。线程安全,引用计数管理内存。

函数说明
json_loads / json_loadf / json_loadfd从字符串/文件/文件描述符解析
json_dumps / json_dumpf / json_dumpfd序列化到字符串/文件/描述符
json_object_get / json_object_set访问/设置对象属性
json_array_get / json_array_append_new数组访问和追加
json_string_value / json_integer_value提取原始值
json_decref释放引用
json_error_t error;
json_t *root = json_loads(json_string, 0, &error);
const char *name = json_string_value(json_object_get(root, "name"));
json_decref(root);

cJSON vs jansson

特性cJSONjansson
文件数量2 个(.c + .h)完整构建系统
错误信息的详细程度简单详细(含行列号)
内存管理手动 free引用计数
线程安全

跨语言参考: C标准库深度剖析