1.简介
JSON++ 是一个轻量级的 JSON 解析库,它是 JSON(JavaScript Object Notation)的一个超集。整个代码由一个单独的头文件json.hpp组成,没有库,没有子项目,没有依赖项,没有复杂的构建系统,支持STL语法。
JSON++ 的主要特点如下:
- 轻量级:JSON++ 的代码量非常小,容易集成到项目中。
- 易于使用:JSON++ 提供了简洁的 API,可以快速地解析和生成 JSON 数据。
- 高效:JSON++ 的解析和生成速度非常快。
- 可移植性:JSON++ 可以在多种编程语言和平台上使用,例如 C、C++、Python、Java 等。
2.环境搭建
下载地址:https://github.com/nlohmann/json/tree/v3.11.0?tab=readme-ov-file
我使用的3.11.0的版本。
下载完成之后解压目录如下,将整个include目录拷贝到我们的工程目录下。
拷贝完成之后如下图所示:
配置文件路径。C/C++ ->常规 ->附加包含目录
3.代码示例
写入文件
#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>
using Json = nlohmann::json;
using namespace std;
int main()
{
// 创建一个 JSON 对象
Json root;
// 添加一些数据
root["name"] = "John Doe";
root["age"] = 30;
root["is_student"] = false;
// 创建一个 JSON 数组
Json courses;
courses.push_back("Math");
courses.push_back("Physics");
courses.push_back("Chemistry");
root["courses"] = courses;
// 输出 JSON 字符串
std::cout << std::setw(4) << root << '\n';
//保存到文件中
// write prettified JSON to another file
std::ofstream o("pretty.json");
o << std::setw(4) << root << std::endl;
return 0;
}
运行截图:
读取文件,就以刚才保存的文件为例读取。
#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>
#include <vector>
using Json = nlohmann::json;
using namespace std;
struct Student
{
std::string name;
int age;
bool is_student;
std::vector<std::string> courses;
};
int main()
{
// read a JSON file
std::ifstream f("pretty.json");
Json j = Json::parse(f);
Student stu;
// iterate the array
for (Json::iterator it = j.begin(); it != j.end(); ++it)
{
std::cout << it.key() << " : " << it.value() << "\n";
if (it.key() == "name")
{
stu.name = it.value();
}
else if (it.key() == "age")
{
stu.age = it.value();
}
else if (it.key() == "is_student")
{
stu.is_student = it.value();
}
else if (it.key() == "courses")
{
stu.courses = it.value();
}
}
return 0;
}
运行截图:
4.更多参考
libVLC 专栏介绍-CSDN博客
Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍_qt opengl视频播放器-CSDN博客
QCharts -1.概述-CSDN博客