C++使用nlohmann\json生成包含数组的json文件
时间: 2025-05-16 13:13:56 浏览: 16
### 如何使用 C++ 和 nlohmann 库创建包含数组的 JSON 文件
以下是通过 `nlohmann` 库生成包含数组的 JSON 数据并保存到文件中的示例代码:
```cpp
#include "nlohmann/json.hpp"
#include <fstream>
#include <iostream>
using json = nlohmann::json;
int main() {
// 创建一个 JSON 对象
json j;
// 添加基本键值对
j["name"] = "John Doe";
j["age"] = 30;
j["is_student"] = false;
// 添加一个字符串数组
j["hobbies"] = {"Reading", "Traveling", "Swimming"};
// 添加一个嵌套对象
json address = {{"city", "New York"}, {"zip_code", "10001"}};
j["address"] = address;
// 添加一个整数数组
j["scores"] = {85, 90, 78};
// 打印生成的 JSON 字符串
std::cout << j.dump(4) << std::endl; // dump(4) 表示缩进为 4 个空格
// 将 JSON 数据写入文件
std::ofstream o("output.json");
o << j.dump(4); // 同样使用缩进格式化输出
return 0;
}
```
#### 关于上述代码的关键说明
- **JSON 数组的定义**:可以通过直接赋值的方式将标准容器(如 `std::vector<std::string>` 或初始化列表 `{}`)转换为 JSON 数组[^3]。
- **嵌套对象的支持**:可以先单独创建子 JSON 对象,再将其作为父对象的一个字段加入[^2]。
- **文件操作**:利用 `<fstream>` 提供的功能,将 JSON 数据序列化为字符串并通过文件流写入磁盘。
#### 输出结果解释
运行以上程序后,会生成名为 `output.json` 的文件,其内容类似于以下结构:
```json
{
"name": "John Doe",
"age": 30,
"is_student": false,
"hobbies": [
"Reading",
"Traveling",
"Swimming"
],
"address": {
"city": "New York",
"zip_code": "10001"
},
"scores": [
85,
90,
78
]
}
```
此示例展示了如何构建复杂的 JSON 结构,包括数组和嵌套对象,并将其存储到外部文件中。
---
阅读全文
相关推荐


















