Skip to content

Releases: Syan-Lin/Tiny-JSON

Tiny-JSON Version v2.1

29 Oct 08:27
Compare
Choose a tag to compare

发布日期:2022/10/29

介绍:修复 Bug,更好的性能描述,改善代码可读性

🐛 问题修复

  • 修复了 ODR 问题(需要 C++ 17 支持,否则需要用其他方式在头文件中定义全局变量)
  • 修复数组越界问题

📝 文档更新

  • 性能描述单位从字符 char 改为 KB,更直观

Tiny-JSON Version v2.0

11 Oct 13:23
Compare
Choose a tag to compare

发布日期:2022/10/11

介绍:完全重构,性能大幅度提升

🔨 重构

  • 重构系统设计,相关类完全重写
    • 重新设计接口,避免使用模板
    • 将 Json 解析和生成功能独立出来,进行解耦,不再是类的内部功能
    • 去除依赖关系,核心功能只在头文件中实现
  • 对外屏蔽内部细节,只提供一个类 Json
  • 代码可读性更高,代码量减少 30%-40%
  • 对于类型不匹配的值获取,返回默认值,不返回一个未定义的值
  • 去除未定义的行为,改为抛出异常

⚡ 性能优化

  • 写性能提升 3 倍以上
  • 读性能时间复杂度降低
  • 类性能提升 13% 左右
  • 循环测试性能提升 2 倍左右

➕ 依赖加入

  • 导入第三方库 doctest 用于单元测试,不影响功能使用,仅用于测试

✨ 功能

  • 新增 Linux 控制台红字显示
  • 解析 Json 提供细致的错误提示,精确至行和错误类型
  • 实现了 json() 接口的类现在能直接初始化为 Json
  • 标准库基本容器也能直接初始化为 Json

Tiny-JSON Version v1.2

20 Sep 06:15
Compare
Choose a tag to compare

发布日期:2022/9/20

介绍:优化性能,重构代码

⚡ 性能优化

  • 添加格式检查选项,关闭可以提高读取性能约 3 倍
  • 类性能:删除类 BooleanNull,使 boolnull 类型的 Value 性能提升 2 倍以上
    • Array:构造性能提升 2 倍

✨ 功能

  • 添加析构性能测试
  • 添加循环测试
  • 细分测试项目

🔨 重构

  • 去除智能指针,改用普通指针
  • Value 中改用 union 数据结构储存数据,以提高性能
  • Object 底层改用 unordered_map 储存数据

Tiny-JSON Version v1.1

19 Sep 05:41
Compare
Choose a tag to compare

发布日期:2022/9/19

介绍:优化性能,修复 Bug,加入外围测试框架

🐛 问题修复

  • 修复了一个除 0 问题

⚡ 性能优化

  • 对 Null 对象进行单例化,全局共用一个,避免复制的性能开销
  • 修改了 Object 和 Array 构造 Value 的逻辑,略微提升性能

✨ 功能

  • 添加了日志系统:方便打印各种颜色的日志信息
  • 添加了用例测试框架:方便进行用例测试和追踪
  • 添加了性能评估框架:方便对性能优化及性能表现进行评估

🔨 重构

  • 重构了项目目录结构

Tiny-JSON Version v1.0

14 Sep 05:49
Compare
Choose a tag to compare

发布日期:2022/9/14

介绍:完成了 JSON 解析器的基本功能和该项目最初的目标需求

  • 拥有极其易用的使用逻辑
  • 编码规范、项目结构良好
  • 注释丰富、无第三方库依赖
  • 支持 JSON5 标准