ANSI C 编写的高性能 JSON 解析库。
特点
- 快速:可以在现代 CPU 上每秒读取或写入千兆字节的 JSON 数据。
- 便携:符合 ANSI C (C89)。
- 标准:严格遵守[RFC 8259]标准。
- 安全:完整的 JSON 表单、数字格式和 UTF-8 验证。
- 准确:能读写int64,数字准确uint64。double
- 更少的限制:支持无限制的 JSON 级别\u0000和非空终止字符串。
- 可扩展:允许注释、尾随逗号、nan/inf、自定义内存分配器的选项。
- 开发者友好:只有一个h文件c,易于集成。
GitHub数据
- 2.2k stars
- 51 watching
- 195 forks
开源地址:https://github.com/ibireme/yyjson
测试表现
image-20220820165108247
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
image-20220820165123373
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: %s\n", yyjson_get_str(name));
printf("name length:%d\n", (int)yyjson_get_len(name));
更多功能广大网友可以继续挖掘。
关注:[开源日记],分享10k+Start的优质开源项目。
ANSI C 编写的高性能 JSON 解析库。
特点
- 快速:可以在现代 CPU 上每秒读取或写入千兆字节的 JSON 数据。
- 便携:符合 ANSI C (C89)。
- 标准:严格遵守[RFC 8259]标准。
- 安全:完整的 JSON 表单、数字格式和 UTF-8 验证。
- 准确:能读写int64,数字准确uint64。double
- 更少的限制:支持无限制的 JSON 级别\u0000和非空终止字符串。
- 可扩展:允许注释、尾随逗号、nan/inf、自定义内存分配器的选项。
- 开发者友好:只有一个h文件c,易于集成。
GitHub数据
- 2.2k stars
- 51 watching
- 195 forks
开源地址:https://github.com/ibireme/yyjson
测试表现
image-20220820165108247
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
image-20220820165123373
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: %s\n", yyjson_get_str(name));
printf("name length:%d\n", (int)yyjson_get_len(name));
更多功能广大网友可以继续挖掘。
关注:[开源日记],分享10k+Start的优质开源项目。ANSI C 编写的高性能 JSON 解析库。
特点
- 快速:可以在现代 CPU 上每秒读取或写入千兆字节的 JSON 数据。
- 便携:符合 ANSI C (C89)。
- 标准:严格遵守[RFC 8259]标准。
- 安全:完整的 JSON 表单、数字格式和 UTF-8 验证。
- 准确:能读写int64,数字准确uint64。double
- 更少的限制:支持无限制的 JSON 级别\u0000和非空终止字符串。
- 可扩展:允许注释、尾随逗号、nan/inf、自定义内存分配器的选项。
- 开发者友好:只有一个h文件c,易于集成。
GitHub数据
- 2.2k stars
- 51 watching
- 195 forks
开源地址:https://github.com/ibireme/yyjson
测试表现
image-20220820165108247
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
image-20220820165123373
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: %s\n", yyjson_get_str(name));
printf("name length:%d\n", (int)yyjson_get_len(name));
更多功能广大网友可以继续挖掘。
关注:[开源日记],分享10k+Start的优质开源项目。
ANSI C 编写的高性能 JSON 解析库。
特点
- 快速:可以在现代 CPU 上每秒读取或写入千兆字节的 JSON 数据。
- 便携:符合 ANSI C (C89)。
- 标准:严格遵守[RFC 8259]标准。
- 安全:完整的 JSON 表单、数字格式和 UTF-8 验证。
- 准确:能读写int64,数字准确uint64。double
- 更少的限制:支持无限制的 JSON 级别\u0000和非空终止字符串。
- 可扩展:允许注释、尾随逗号、nan/inf、自定义内存分配器的选项。
- 开发者友好:只有一个h文件c,易于集成。
GitHub数据
- 2.2k stars
- 51 watching
- 195 forks
开源地址:https://github.com/ibireme/yyjson
测试表现
image-20220820165108247
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
image-20220820165123373
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: %s\n", yyjson_get_str(name));
printf("name length:%d\n", (int)yyjson_get_len(name));
更多功能广大网友可以继续挖掘。
关注:[开源日记],分享10k+Start的优质开源项目。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81088.html