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 filestd::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 filestd::ifstream f("pretty.json");Json j = Json::parse(f);Student stu;// iterate the arrayfor (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博客