C++中nlohmann json的基本使用教程
简介
nlohmann json是一个开源的JSON解析器和生成器,支持标准的JSON格式。它是一个单头文件的库,可以轻松地集成到C++项目中。
安装
使用nlohmann json不需要安装,只需要将头文件json.hpp复制到你的项目中即可。
基本使用
创建一个JSON对象
#include "json.hpp"
#include <iostream>
using json = nlohmann::json;
int main()
{
// 创建一个空对象
json jsonObj;
// 创建一个对象并赋值
json jsonObj2 = {
{"name", "John"},
{"age", 25},
{"city", "New York"}
};
return 0;
}
添加成员
#include "json.hpp"
#include <iostream>
using json = nlohmann::json;
int main()
{
// 创建一个空对象
json jsonObj;
// 添加成员
jsonObj["name"] = "John";
jsonObj["age"] = 25;
jsonObj["city"] = "New York";
// 输出JSON对象
std::cout << jsonObj.dump() << std::endl;
return 0;
}
输出结果:
{
"name": "John",
"age": 25,
"city": "New York"
}
访问成员
#include "json.hpp"
#include <iostream>
using json = nlohmann::json;
int main()
{
// 创建一个JSON对象并赋值
json jsonObj = {
{"name", "John"},
{"age", 25},
{"city", "New York"}
};
// 访问成员
std::string name = jsonObj["name"];
int age = jsonObj["age"];
std::string city = jsonObj["city"];
// 输出成员
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
std::cout << "City: " << city << std::endl;
return 0;
}
输出结果:
Name: John
Age: 25
City: New York
示例
示例1:从文件中读取JSON数据
假设有一个JSON文件data.json
,它的内容如下:
[
{
"name": "John",
"age": 25,
"city": "New York"
},
{
"name": "Mary",
"age": 30,
"city": "Los Angeles"
}
]
现在我们要从文件中读取数据并输出到控制台上。可以使用如下代码实现:
#include "json.hpp"
#include <iostream>
#include <fstream>
#include <string>
using json = nlohmann::json;
int main()
{
// 打开文件
std::ifstream inputFile("data.json");
// 读取文件内容到字符串中
std::string content;
inputFile >> content;
// 解析JSON字符串
json jsonObj = json::parse(content);
// 输出JSON对象
std::cout << jsonObj.dump(2) << std::endl;
return 0;
}
输出结果:
[
{
"name": "John",
"age": 25,
"city": "New York"
},
{
"name": "Mary",
"age": 30,
"city": "Los Angeles"
}
]
示例2:将JSON数据写入文件中
假设有一个JSON对象,它的内容如下:
{
"name": "John",
"age": 25,
"city": "New York"
}
现在我们要将这个JSON对象写入到文件中。可以使用如下代码实现:
#include "json.hpp"
#include <iostream>
#include <fstream>
using json = nlohmann::json;
int main()
{
// 创建JSON对象并赋值
json jsonObj = {
{"name", "John"},
{"age", 25},
{"city", "New York"}
};
// 打开文件
std::ofstream outputFile("output.json");
// 将JSON对象写入文件
outputFile << jsonObj.dump(2);
return 0;
}
输出结果:
创建一个名为output.json
的文件,其内容为:
{
"name": "John",
"age": 25,
"city": "New York"
}
总结
nlohmann json是一个强大、易用的JSON解析器和生成器。它支持标准的JSON格式,并且具有极高的性能和易用性,在C++项目中可以轻松集成和使用。在使用nlohmann json的过程中,我们可以使用基本数据类型和STL容器来操作JSON对象,这使得我们的代码更加简洁、易读,并且具有更高的可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中nlohmann json的基本使用教程 - Python技术站