一个 C++ 格式化库,提供比 C stdio 和 iostreams 更快、类型安全的替代方案,实现了 C++20 std::format。
nlohmann/json
一个仅头文件的 C++11 库,用类似 STL 的语法在 C++ 中解析、构造、操作和序列化 JSON。
- Star
- 50,790
- Fork
- 7,511
- 未关闭 Issue
- 19
- 最近提交
- 5小时前
这是什么?
JSON for Modern C++ 是一个 C++ JSON 库,让开发者像操作原生数据类型一样处理 JSON 值。核心类 basic_json(别名 nlohmann::json)可以由字面量、STL 容器或自定义类型构造,并通过运算符和熟悉的容器方法访问。
整个库以单个头文件形式发布,无需额外编译步骤或依赖即可加入项目。它支持 JSON Pointer(RFC 6901)、JSON Patch(RFC 6902)和 JSON Merge Patch(RFC 7396),可生成差异补丁,并能与 BSON、CBOR、MessagePack、UBJSON、BJData、BON8 等二进制格式互相转换。
自定义类型可通过 to_json、from_json 函数或辅助宏映射为 JSON。项目提供完整文档和 API 参考,并支持 CMake 及主流包管理器集成。
核心功能
- 01单个头文件集成,无外部依赖,基于 C++11 编写。
- 02JSON 值的访问和赋值语法直观,与 STL 容器风格一致。
- 03支持从字符串、流和迭代器区间解析,并可带缩进序列化输出。
- 04支持 JSON Pointer、JSON Patch 和 JSON Merge Patch,包括生成差异补丁。
- 05支持与 CBOR、MessagePack、BSON、UBJSON 等二进制格式互相转换。
- 06提供宏和转换函数,便于将自定义 C++ 类型映射为 JSON。
适用场景
- 在 C++ 应用中读取配置文件或处理 API 数据。
- 从 C++ 数据结构构造 JSON 响应或消息。
- 计算并应用两个 JSON 文档版本之间的补丁。
- 将 C++ 结构体序列化为 JSON 或二进制格式用于存储或传输。
快速上手
- 1
将仓库中的单个头文件 json.hpp 添加到项目中,或通过包管理器安装
- 2
在 C++ 代码中使用 #include <nlohmann/json.hpp> 引入头文件,即可开始使用 json 类型
使用前须知
- README 指出存在更快的 JSON 库,因此该库更注重易用性而非速度。
标签
常见问题
- json 是什么?
- 一个仅头文件的 C++11 库,用类似 STL 的语法在 C++ 中解析、构造、操作和序列化 JSON。 JSON for Modern C++ 是一个 C++ JSON 库,让开发者像操作原生数据类型一样处理 JSON 值。核心类 basic_json(别名 nlohmann::json)可以由字面量、STL 容器或自定义类型构造,并通过运算符和熟悉的容器方法访问。
- json 可以免费使用吗?用的什么许可证?
- json 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- json 还在维护吗?
- 活跃维护中。json 最近一次提交是在 2026年10月21日。
- json 适合用来做什么?
- 在 C++ 应用中读取配置文件或处理 API 数据。 从 C++ 数据结构构造 JSON 响应或消息。 计算并应用两个 JSON 文档版本之间的补丁。 将 C++ 结构体序列化为 JSON 或二进制格式用于存储或传输。
- json 怎么安装和运行?
- 将仓库中的单个头文件 json.hpp 添加到项目中,或通过包管理器安装 在 C++ 代码中使用 #include <nlohmann/json.hpp> 引入头文件,即可开始使用 json 类型
- 在哪里获取 json?
- 源代码和安装说明在 GitHub 上:https://github.com/nlohmann/json
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款用于编辑、生成和比较 JSON 文件的桌面及 VS Code 工具,可基于类结构生成 JSON。
一种紧凑、易读的 JSON 数据编码格式,用于减少向 LLM 提示词传递结构化数据时的 token 消耗。
一个利用 SIMD 指令实现每秒解析数 GB JSON 且支持完整校验的 C++ 库。
一个 Java 库,用于在 Java 对象与 JSON 之间相互转换,也支持没有源码的已有对象。
一个快速、易用、类 Flask 路由风格的 C++ 微框架,用于构建 HTTP 和 WebSocket 服务。