2.2k stars号称最牛X的C语言JSON解析库

ANSI C 编写的高性能 JSON 解析库。

特点

  • 快速:可以在现代 CPU 上每秒读取或写入千兆字节的 JSON 数据。
  • 便携:符合 ANSI C (C89)。
  • 标准:严格遵守[RFC 8259]标准。
  • 安全:完整的 JSON 表单、数字格式和 UTF-8 验证。
  • 准确:能读写int64,数字准确uint64double
  • 更少的限制:支持无限制的 JSON 级别u0000和非空终止字符串。
  • 可扩展:允许注释、尾随逗号、nan/inf、自定义内存分配器的选项。
  • 开发者友好:只有一个h文件c,易于集成。

GitHub数据

  • 2.2k stars
  • 51 watching
  • 195 forks

开源地址:https://github.com/ibireme/yyjson

测试表现

2.2k stars号称最牛X的C语言JSON解析库
twitter.json parse (GB/s) stringify (GB/s)
yyjson(insitu) 1.80 1.51
yyjson 1.72 1.42
simdjson 1.52 0.61
sajson 1.16
rapidjson(insitu) 0.77
rapidjson(utf8) 0.26 0.39
cjson 0.32 0.17
janSSOn 0.05 0.11
2.2k stars号称最牛X的C语言JSON解析库
twitter.json parse (GB/s) stringify (GB/s)
yyjson(insitu) 3.51 2.41
yyjson 2.39 2.01
simdjson 2.19 0.80
sajson 1.74
rapidjson(insitu) 0.75
rapidjson(utf8) 0.30 0.58
cjson 0.48 0.33
jansson 0.09 0.24

示例代码

const char *json = "{"name":"Mash","star":4,"hits":[2,2,1,3]}";

// Read JSON and get root
yyjson_doc *doc = yyjson_read(json, strlen(json), 0);
yyjson_val *root = yyjson_doc_get_root(doc);

// Get root["name"]
yyjson_val *name = yyjson_obj_get(root, "name");
printf("name: %sn", yyjson_get_str(name));
printf("name length:%dn", (int)yyjson_get_len(name));

更多功能广大网友可以继续挖掘。

   

原文始发于微信公众号(开源日记):2.2k stars号称最牛X的C语言JSON解析库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/49931.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!