JSON--rapidjson

  • 1 RapidJSON简介
  • 2 C/C++ Json库对比
    • 一致性
    • 解析时间
    • 解析内存
    • Stringify Time(string 2 json)
    • Prettify Time(美化格式时间)
    • 代码大小
  • 3 几个重点库介绍
    • rapidjson
    • nlohmann-json
    • jsoncpp
    • cjson
  • 参考

1 RapidJSON简介

  • RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。
  • RapidJSON是跨平台的,支持Windows, Linux, Mac OS X及iOS, Android。
  • RapidJSON很小但很完整。它同时支持SAX和DOM风格的API。SAX解析器只有5000行代码。
  • RapidJSON快。它的性能可以与strlen()相媲美。它还可选择支持SSE2/SSE4.2加速。
  • RapidJSON是自包含的,只包含头文件。它不依赖于诸如BOOST之类的外部库。它甚至不依赖于STL。
  • RapidJSON是友好的存储器。对于大多数32/64位机器(不包括文本字符串),每个JSON值占用16个字节。默认情况下,它使用快速内存分配器,解析器在解析期间紧凑地分配内存。
    RapidJSON Unicode-friendly。它支持UTF-8、UTF-16、UTF-32 (LE和BE)以及它们的内部检测、验证和转码。例如,您可以读取一个UTF-8文件,并让RapidJSON在DOM中将JSON字符串转码为UTF-16。它还支持代理和“u0000”(空字符)。

2 C/C++ Json库对比

一致性

解析时间

解析内存

Stringify Time(string 2 json)

Prettify Time(美化格式时间)

代码大小

3 几个重点库介绍

rapidjson

这个库的设计目标就是追求性能极致,性能确实相较其他库高很多,但是缺点是接口设计不友好。rapidjson为了追求高性能,在设计上尽量减少内存复制,大量使用指针和浅复制,所以很多接口的用法都不太符合常规。实际使用种可以自己再封装一层接口,用起来会更顺手。

nlohmann-json

这个库好像就叫json for modern c++,使用c++11实现。官方文档已经说明,它不是为了追求性能而设计的,其目的是使得在c++里面操作json尽可能的自然,就像在python等语言里面操作json一样。它的接口易用,只要会用std::vector和std::map就能用这个库。

jsoncpp

这个库的接口比较好用,如果在程序只是用于处理配置文件等对性能没要求的场景,可以考虑使用这个库。

cjson

一个用c实现的json库,效率也比较高,但是使用起来要用c的那一套方法,最好的方式也是自己再封装一下。

参考

1、RapidJSON
2、C++ Json库对比
3、the conformance and performance of 41 open-source C/C++ libraries with JSON parsing/generation capabilities. Performance means speed, memory, and code size.
4、rapidjson库的基本使用
5、RapidJSON简介及使用

JSON--rapidjson介绍相关推荐

  1. RapidJSON 介绍

    1. RapidJSON 介绍 RapidJSON 是一个解析和生成 JSON 的 C++ 库. 无需编译,包含头文件即可使用. 2. RapidJSON 使用 2.1 解析 const char* ...

  2. 微信小程序 app.json 详细介绍

    微信小程序 app.json 详细介绍 {// 写各个页面的路径 (新增页面或者减少页面都要对其进行修改)"pages": ["pages/index/index&quo ...

  3. 常用json框架介绍和Jackson返回结果处理

    常用json框架介绍和Jackson返回结果处理     简介:介绍常用json框架和注解的使用,自定义返回json结构和格式 1.常用框架 阿里 fastjson,谷歌gson等         J ...

  4. JSON+JSON5介绍

    文章目录 JSON使用介绍 1.简介 2.JSON语法规则 3.JSON文件 4.访问\修改\删除数据 4.1 操作对象数据 4.2 操作数组数据 5.常用的对象-JSON字符串互转的方法 5.1 J ...

  5. 常用文件类型 -- JSON文件介绍

    文章目录 JSON文件介绍 1.1 什么是JSON 1.2 JSON语法规则 1.3 JSON举例 1.4 JSON和XML比较 1.4.1 XML的优缺点 1.4.1.1 XML的优点 1.4.1. ...

  6. Java 常见JSON框架介绍

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.其简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,同时也易于机器解析和生成, ...

  7. Jackson与Json的介绍与使用

    目录 1 JSON 2 JSON转换工具的介绍 3 JSON转换练习 4 小结 5 map对象套对象 6 JSON时间类型按标准返回 1 JSON 推荐一个小工具:CSDN插件可以将后端返回的json ...

  8. JSON JOLT介绍 及语法详解-shift篇

    有很多同学跟我反映  博客里的很多图都没了,真的很抱歉: 目前CSDN这里的博客不会再维护了,关于NIFI的文章会陆续在 https://nifichina.gitee.io https://nifi ...

  9. JSON数据格式介绍

    JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同一时候也易于机器解析和生成.它基于ECMA262语言规范(1999-12第 ...

  10. 有关JSON和介绍和使用

    1.什么是JSON? JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式. JSON 比 XML 更小.更快,更易解析. JSON 独立于语 ...

最新文章

  1. 牛客网练习赛7--购物 动态规划
  2. 一个jsp内嵌一个jsp
  3. python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串
  4. Ajax Tutorials
  5. 使用Spyder生成动态二维码遇到的问题 ImportError 、ValueError 、OSError
  6. 【缺迪杰斯特拉和SPFA] 文巾解题 787. K 站中转内最便宜的航班
  7. 杭电oj1003java实现
  8. 使用TestBed测试具有依赖关系的Angular服务
  9. java流数据base64,Base64数据的流解码
  10. verdi中波形怎么看间距_小间距led显示屏金线封装真伪怎么看?
  11. [转载] pythonjson构建二维数组_python二维键值数组生成转json的例子
  12. 【渝粤教育】国家开放大学2018年秋季 1121t健康教育与健康促进 参考试题
  13. 光驱放入空盘,出现无法访问函数不正确(收藏)
  14. python安装目录插件
  15. Module not specified
  16. 红色建筑装饰公司营销型网站织梦模板
  17. Admob广告收入怎么算的?
  18. 好妈妈胜过好老师 书摘
  19. 疯狂动物消消乐html5游戏在线玩,疯狂动物园消消乐游戏
  20. Moodle平台界面的修改

热门文章

  1. iOS安全之三攻三防
  2. 优美语句 优美文段摘抄(96个精彩语段)
  3. sql多表查询详解、用户表、角色表、权限表、权限加减表,根据用户id查询所有权限,连接查询
  4. (四) Shell脚本简介,变量的定义、引用、删除,常见状态和运算符,命令,软件的安装和维护(RPM),软件的安装和维护(yum)
  5. 织梦dedecms v5.7 mytag 自定义宏标记
  6. 极客必知:iPhone备份番外篇
  7. ubuntu批量修改图片大小
  8. 一个苦逼次世代游戏建模师的内心独白,请在家长的陪同下阅读
  9. 邱健 (为奥运冠军名字作诗)
  10. Android百度地图SDK 导航初始化和地图初始化引起的冲突