Releases: Syan-Lin/Tiny-JSON
Releases · Syan-Lin/Tiny-JSON
Tiny-JSON Version v2.1
发布日期:2022/10/29
介绍:修复 Bug,更好的性能描述,改善代码可读性
🐛 问题修复
- 修复了 ODR 问题(需要 C++ 17 支持,否则需要用其他方式在头文件中定义全局变量)
- 修复数组越界问题
📝 文档更新
- 性能描述单位从字符 char 改为 KB,更直观
Tiny-JSON Version v2.0
发布日期:2022/10/11
介绍:完全重构,性能大幅度提升
🔨 重构
- 重构系统设计,相关类完全重写
- 重新设计接口,避免使用模板
- 将 Json 解析和生成功能独立出来,进行解耦,不再是类的内部功能
- 去除依赖关系,核心功能只在头文件中实现
- 对外屏蔽内部细节,只提供一个类
Json
- 代码可读性更高,代码量减少 30%-40%
- 对于类型不匹配的值获取,返回默认值,不返回一个未定义的值
- 去除未定义的行为,改为抛出异常
⚡ 性能优化
- 写性能提升 3 倍以上
- 读性能时间复杂度降低
- 类性能提升 13% 左右
- 循环测试性能提升 2 倍左右
➕ 依赖加入
- 导入第三方库
doctest
用于单元测试,不影响功能使用,仅用于测试
✨ 功能
- 新增 Linux 控制台红字显示
- 解析 Json 提供细致的错误提示,精确至行和错误类型
- 实现了
json()
接口的类现在能直接初始化为Json
了 - 标准库基本容器也能直接初始化为
Json
Tiny-JSON Version v1.2
发布日期:2022/9/20
介绍:优化性能,重构代码
⚡ 性能优化
- 添加格式检查选项,关闭可以提高读取性能约 3 倍
- 类性能:删除类
Boolean
和Null
,使bool
和null
类型的Value
性能提升 2 倍以上- Array:构造性能提升 2 倍
✨ 功能
- 添加析构性能测试
- 添加循环测试
- 细分测试项目
🔨 重构
- 去除智能指针,改用普通指针
- 类
Value
中改用union
数据结构储存数据,以提高性能 - 类
Object
底层改用unordered_map
储存数据
Tiny-JSON Version v1.1
发布日期:2022/9/19
介绍:优化性能,修复 Bug,加入外围测试框架
🐛 问题修复
- 修复了一个除 0 问题
⚡ 性能优化
- 对 Null 对象进行单例化,全局共用一个,避免复制的性能开销
- 修改了 Object 和 Array 构造 Value 的逻辑,略微提升性能
✨ 功能
- 添加了日志系统:方便打印各种颜色的日志信息
- 添加了用例测试框架:方便进行用例测试和追踪
- 添加了性能评估框架:方便对性能优化及性能表现进行评估
🔨 重构
- 重构了项目目录结构
Tiny-JSON Version v1.0
发布日期:2022/9/14
介绍:完成了 JSON 解析器的基本功能和该项目最初的目标需求
- 拥有极其易用的使用逻辑
- 编码规范、项目结构良好
- 注释丰富、无第三方库依赖
- 支持 JSON5 标准