最近更新于 2026-05-06 20:02
项目地址:https://github.com/nlohmann/json
2026/5/6
近期我在开发一个 CAD 插件。开始的时候有个功能的设置是存储在注册表的,但是准备扩充功能的时候就比较麻烦了,而且设置不能复制。我就找到了这个库,今天已经完成了重构,改为 json 来保存配置信息,后期增加设置项也便捷,而且还能复制到别的电脑直接沿用配置,不需要分别去设置。
可惜的是对 C++ 模块支持还在试验阶段,我这里项目是直接使用的 C++23 标准,除了框架模板和 MFC 相关的部分,我都进行模块化了。我写了一个简单的包装,来实现模块化。

但是包装也不彻底,C++23 还没支持反射。nlohmann/json 里面用宏间接实现了接近反射的效果,做到结构体的序列化和反序列化。模块是不能导出宏的,所以我使用它的宏的部分还是需要引用头文件,这个没法包装起来。

工具推荐:开源的 C++ json 库【nlohmann/json】
