JSON++介绍

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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/7659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web 3.0时代:软文发稿对企业品牌的影响

Web 3.0的到来&#xff0c;标志着我们已经进入了一个全新的互联网时代。在这个新时代中&#xff0c;信息的生成和传播有了更多的可能性和更广的空间。作为企业品牌宣传的重要手段之一的软文发稿&#xff0c;在Web 3.0时代将会面临什么样的挑战和机遇&#xff1f; 首先&#xf…

使用openssl创建https证书

原文地址&#xff1a;使用openssl创建https证书-腾讯云开发者社区-腾讯云 从今天开始笔者打算和大家聊一聊http2这个协议&#xff0c;想要说清楚http2协议就必须亲手搭建一个http2的服务&#xff0c;并且对比http2和http1.1的特点&#xff0c;从而了解http2的一些新特性。 ht…

【C语言】预处理器

我们在开始编写一份程序的时候&#xff0c;从键盘录入的第一行代码&#xff1a; #include <stdio.h>这里就使用了预处理&#xff0c;引入头文件。 C预处理器不是编译器的组成部分&#xff0c;但是它是编译过程中一个单独的步骤。简言之&#xff0c;C预处理器只不过是一…

产品专访|“产品”远程运维系统与“设备”远程运维系统的区别?

在日益复杂的工业制造环境下&#xff0c;远程运维已经成为生产制造企业不可或缺的一部分。在这个大背景下&#xff0c;产品远程运维系统和设备远程运维系统的需求越来越多&#xff0c;各自发挥着独特的作用。然而&#xff0c;尽管它们都涉及到远程运维的概念&#xff0c;但在实…

windows系统远程执行脚本部署项目操作手册

windows系统远程执行脚本部署项目操作手册 windows系统远程执行脚本部署项目 如果频繁的需要部署项目到远程的服务器上,每次要手动上传项目,然后停止项目,启动项目,很麻烦,像Linux天生支持远程执行脚本 Windows借助工具也可以做到. 安装WinSCP软件 自行下载软件或关注我的公…

linux学习:音视频编程+alsa声音架构

目录 概念 采样 量化 编码 音频文件wav 格式 标准音频接口 ALSA 录制音频 步骤 api 获取pcm设备句柄 设置 PCM 设备参数 代码 播放音频 步骤 代码 概念 信号都是模拟信号&#xff0c;不管是声音还是光线&#xff0c;这些模拟信号需要被 A/D 转换器转换成数字信…

LeetCode:盛最多水的容器

文章收录于LeetCode专栏 盛最多水的容器 给你n个非负整数a1&#xff0c;a2&#xff0c;…&#xff0c;an&#xff0c;每个数代表坐标中的一个点(i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线i的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与…

常见比较实用的Chrome命令/扩展程序

文章目录 一、Chrome命令二、Chrome操作三、Chrome扩展程序 一、Chrome命令 Chrome浏览器提供了一系列实用的内部命令和URL&#xff0c;这些命令可以帮助用户快速访问浏览器的各种功能和设置。以下是一些实用的Chrome命令&#xff1a; 查看所有支持的命令&#xff1a; 直接在…

24上半年软考时间安排已出!

正在备考上半年软考考试的宝子们注意啦~ 软考官网已经发布了24上半年考试时间及科目安排&#xff0c;大家仔细查看&#xff0c;确认好考试时间&#xff0c;以防错过考试。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 通知原文如下&#xff1a;↓↓↓…

利用 MyNodeQuery 搭建三网延迟监控 实时监控 VPS 网络情况

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 MyNodeQuery 是一款简洁好用的探针&#xff0c;可以作为 NodeQuery 关闭后的替代品&#xff0c;功能也基本参照 NodeQuery&#xff0c;支持节点离线通知、节点排序、自定义 Ping 节点&#xff0c;还有网速…

关于YOLO8学习(六)安卓部署ncnn模型--图片检测

前文 关于YOLO8学习(一)环境搭建,官方检测模型部署到手机 关于YOLO8学习(二)数据集收集,处理 关于YOLO8学习(三)训练自定义的数据集 关于YOLO8学习(四)模型转换为ncnn 关于YOLO8学习(五)安卓部署ncnn模型–视频检测 简介 前文第五章,讲述了部署自定义模型后,进…

构建多代开发团队的沟通与共识:方法与实践

团队中拥有各个年龄段的开发者是一种常见的现象&#xff0c;如何快速形成一套团队沟通语言、共识和知识体系是团队协作和发展的关键。下面我们就这个话题展开讨论。 1. 建立共同目标和价值观 首先&#xff0c;团队需要明确共同的目标和价值观。无论年龄段的差异如何&#xff…

关于Git的commit message规范

前几天在提交代码的时候突然发现自己的commit message写的有点问题&#xff0c;然后到网上查了下发现Git的commit message也是有规范的&#xff0c;下面我总结了三条我认为最重要的。 1.commit message需要简洁明了&#xff0c;突出变更的目的 2.提交信息的前缀用来表示你的这…

2023ccpc重庆站女生专场B.终焉之茧(交互题)

2023 c c p c 重庆站女生专场 B . 终焉之茧 \Huge{2023ccpc重庆站女生专场B.终焉之茧} 2023ccpc重庆站女生专场B.终焉之茧 文章目录 题意思路标程 题目链接&#xff1a;B. 终焉之茧 题意 给定一个无限大的平面&#xff0c;终焉之茧坐标为 [ x 0 , y 0 ] [x_0,y_0] [x0​,y0​]…

【牛客】Tokitsukaze and Average of Substring

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N]&#xff08;pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…

git stash 工作中常用命令记录

save 可省略, 则使用最近一次的提交记录的描述来存储 git stash save “暂存内容描述” 查看暂存列表 git stash list 获取/使用 但不删除 本次暂存内容 git stash apply 默认第一个使用其他则追加 stash{number} 即可, 例如,使用第三个(从0开始) git stash apply stash{2} 获取…

理解Oracle闪回级别【Oracle闪回技术】(一)

Oracle闪回技术是数据恢复技术&#xff0c;具有恢复时间快&#xff0c;不适用备份文件。可以使数据库回到某个状态。 可以满足用户的逻辑处理的快速恢复。 但是闪回技术只是逻辑数据恢复&#xff0c;如果是数据文件损坏&#xff0c;必须依赖介质才能恢复。 闪回技术的特性&…

腾讯的EdgeONE是什么?

腾讯的EdgeONE是一项边缘计算解决方案&#xff0c;具有一系列优势&#xff1a; 边缘计算能力强大&#xff1a;EdgeONE利用腾讯云在全球范围内的分布式基础设施&#xff0c;提供强大的边缘计算能力&#xff0c;可以实现低延迟和高可用性的服务。 智能化和自动化&#xff1a;Edg…

深度学习训练八股

一、模型中的函数的定义 1.torchmetrics.AUROC &#xff08;1&#xff09;.binary >>> from torch import tensor >>> preds tensor([0.13, 0.26, 0.08, 0.19, 0.34]) >>> target tensor([0, 0, 1, 1, 1]) >>> auroc AUROC(task&quo…