nlohmann/json 简介:它是什么以及为什么需要它
nlohmann/json 库(也称为 JSON for Modern C++)是 C++ 语言中最流行、最方便的 JSON 处理库之一。它由 Niels Lohmann 开发,并在 MIT 许可下发布。该库的主要目标是提供一个直观、现代且安全的接口,用于解析、创建、修改和序列化 JSON 数据。
为什么需要它?在现代开发中,JSON(JavaScript 对象表示法)是服务间数据交换、配置存储、API 和 Web 应用程序交互的事实标准。C++ 标准库没有内置的 JSON 支持,因此开发人员要么编写自己的解析器,要么使用第三方解决方案。nlohmann/json 解决了这个问题,它提供了:
- 简单的语法 — 使用 JSON 类似于使用 STL 内置容器(std::map、std::vector)。
- 类型安全 — 在 C++ 类型和 JSON 之间自动转换。
- 高性能 — 该库针对速度和内存进行了优化。
- 跨平台 — 可在 Windows、Linux、macOS 以及嵌入式系统上运行。
- 完全支持 JSON 标准 — 包括嵌套对象、数组、null、布尔值、数字和字符串。
该库被广泛应用于工业项目,例如游戏引擎、Web 服务器、数据分析工具和物联网设备。
安装 nlohmann/json
与 Python(使用 pip)不同,在 C++ 中,库的安装可以通过多种方式完成。让我们来看看最流行的几种。
方法 1:仅头文件(推荐给初学者)
nlohmann/json 库是 仅头文件 的——这意味着要使用它,只需下载一个头文件 json.hpp 并将其包含到项目中即可。无需编译、链接或安装依赖项。
- 从 官方仓库 下载文件
json.hpp(最新版本为 v3.11.3)。 - 将其放入您的项目文件夹中,例如
include/json.hpp。 - 在源代码中包含:
#include "json.hpp"。
方法 2:通过包管理器安装
如果您使用现代构建系统,可以通过包管理器安装该库:
- vcpkg(Windows、Linux、macOS):
vcpkg install nlohmann-json - Conan:
conan install nlohmann_json/3.11.3@ - Homebrew(macOS):
brew install nlohmann-json - APT(Ubuntu/Debian):
sudo apt install nlohmann-json3-dev
方法 3:CMake FetchContent
对于使用 CMake 的项目,可以在构建过程中自动下载该库:
include(FetchContent)FetchContent_Declare( json GIT_REPOSITORY https://github.com/nlohmann/json.git GIT_TAG v3.11.3)FetchContent_MakeAvailable(json)target_link_libraries(your_target PRIVATE nlohmann_json::nlohmann_json)快速入门:第一个示例
让我们编写一个简单的程序,创建一个 JSON 对象,将其输出到屏幕,然后将 JSON 字符串解析回来。
#include <iostream>#include "json.hpp"
using json = nlohmann::json;
int main() { // 1. 创建 JSON 对象 json person = { {"name", "Alice"}, {"age", 30}, {"is_student", false}, {"skills", {"C++", "Python", "JSON"}},