json for modern c++

news2024/11/18 0:14:50

目录

  • json for modern c++
    • 概述
    • 编译问题
      • 问题描述
      • 问题解决
    • 读取JSON文件demo

json for modern c++

GitHub - nlohmann/json: JSON for Modern C++

概述

json for modern c++是一个德国大牛nlohmann写的,该版本的json有以下特点:
1.直观的语法。
2.整个代码由一个头文件组成json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。
3.使用c++11标准编写。
4.使用json 像使用STL容器一样。
5.STL和json容器之间可以相互转换。

编译问题

问题描述

看所有文章,都是写下载该工程,把json.hpp包含即可。如下图所示。
在这里插入图片描述
在这里插入图片描述

结果编译不过,编译报错如下图所示
在这里插入图片描述

问题解决

后查找资料,查到该JSON库有个Issues中提到了该问题,并解决了。
‘nlohmann/json.hpp’ file not found · Issue #2188 · nlohmann/json · GitHub
在这里插入图片描述

后续按照人提供的思路,输入指令sudo apt install nlohmann-json-dev 即可编译通过

读取JSON文件demo

参考文章:
JSON for Modern C++ 库的介绍与使用示例代码_mordenjson
示例代码如下所示:

#include <iostream>
#include <fstream>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

/**
 simple.json 文件
{
  "ok":true,
  "height": 20.123,
  "width": 1000,
  "name": "test"
}
 */

int main()
{

  json j;                             // json 对象
  std::ifstream jfile("simple.json"); // 流读取
  jfile >> j;                         // 文件流形式读取 json 文件, 并存为 j
  jfile.close();

  std::cout << "json j = " << j << std::endl;

  bool ok = j.at("ok");
  float height = j["height"];
  int width = j["width"];
  std::string name = j.at("name");

  std::cout << "ok = " << ok << std::endl;
  std::cout << "height = " << height << std::endl;
  std::cout << "width = " << width << std::endl;
  std::cout << "name = " << name << std::endl;

  return 0;
}

运行结果如下图所示
在这里插入图片描述

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

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

相关文章

QT 创建插件 CTK开发(三)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

DP4056国产兼容替代LTC40561A锂离子电池充电芯片

目录 锂电池 VS 锂离子电池DP4056简介DP4056芯片特性 锂电池 VS 锂离子电池 锂电池是以锂金属或锂合金为正极材料&#xff0c;使用非水电解质溶液的电池。锂电池与锂离子电池不一样的是&#xff0c;前者是一次电池&#xff0c;后者是充电电池。锂离子电池工作原理就是依靠锂离…

(大数据开发随笔6)Hadoop 3.3.x分布式环境部署——本地模式

本地模式 材料准备 Linux虚拟机-CentOS7hadoop-3.3.1.tar.gz Index of /hadoop/common (apache.org)jdk-8u321-linux-x64.tar.gz Java Archive | Oracle Centos7虚拟机部署 准备材料&#xff1a; VMware17CentOS-7-x86_64-Minimal-2009.iso centos-7-isos-x86_64安装包下载…

2022国赛34:路由器之间ISIS协议配置

大赛试题内容: 5.RT1以太链路、RT2以太链路之间运行ISIS协议,进程10,分别实现loopback3 之间ipv4互通和ipv6互通。RT1、RT2的NET分别为10.0000.0000.0001.00、10.0000.0000.0002.00,路由器类型是Level-2,接口网络类型为点到点。配置域md5认证和接口md5认证,密码均为Key…

企业如何从0到1落地BI项目

企业需要数据整合、分析展现及应用的完整数据平台方案。为了满足集团化BI建设需求&#xff0c;企业决策层需要基于全局数据进行分析&#xff0c;需要提供数据整合、存储、计算到数据应用的端到端数据平台。 商业智能BI - 派可数据BI可视化分析平台 BI的实践落地需要全生命周期…

[Python基础] 序列(列表/元组)和字典的操作详解

文章目录 序列概念序列列表列表的创建和下标访问创建下标 列表的切片操作列表的遍历列表的插入操作列表的查找和删除列表的拼接 元组元组的相关操作 字典概念字典的创建查找字典中的key&#xff0c;value字典的增删改字典的遍历 序列概念 包含若干个元素, 元素有序排列, 可以通…

APIs -- DOM节点操作

1. 日期对象 日期对象&#xff1a;用来表示时间的对象 作用&#xff1a;可以得到当前系统时间 1.1 实例化 在代码中发现了new关键字时&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间&#xff1a;const date new Date(); // 实例化 new// 1.得到当前时…

React语法(N)

文章目录 React简介概述官网特点生态 react学习的说明新的官网全力投入现代React与Hooks React脚手架create-react-app官网创建和启动项目项目结构sass支持 Vite创建和启动项目项目结构常见配置 虚拟DOM什么是虚拟DOM虚拟DOM优缺点优点&#xff1a;缺点&#xff1a; 虚拟DOM实现…

CTF之命令执行常见绕过

命令执行常见绕过 1.空格代替 当我们执行系统命令时&#xff0c;不免会遇到空格&#xff0c;如cat flag.txt&#xff0c;当空格被程序过滤时&#xff0c;便需要利用以下字符尝试代替绕过&#xff1a; < ${IFS} $IFS$9 %09测试如下&#xff1a; $IFS 在 linux 下表示分隔…

增长黑武器|LTD荣获“2023中国工业数字化赋能奖先锋”

​ 2014年&#xff0c;北京 2015年&#xff0c;南昌 2016年&#xff0c;上海 ...... 2022年&#xff0c;南京 2023年&#xff0c;4月21日 由中国生产力促进中心协会数字经济工作委员会提供指导&#xff0c;由托比网主办的“第六届中国工业数字化高峰论坛”在上海举行。本…

力扣sql中等篇练习(十)

力扣sql中等篇练习(十) 1 查询回答率最高的问题 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # count(具体字段)会自动不统计null值 SELECT t1.question_id survey_log FROM (SELECT question_id,count(answer_id)/count(*) rFROM SurveyLogGROUP…

STM32常用的开发工具有哪些

这么多工具&#xff0c;选择困难啊&#xff0c;先列出来&#xff0c;以后有选择了给大家说&#xff0c;对了&#xff0c;2023年还有一个新玩法就是VSCode 本文为大家汇总 STM32 常用的一些开发工具。 IDE&#xff08;集成开发环境&#xff09; IDE&#xff1a;IntegratedDeve…

springboot_模拟01

demo 模拟springboot pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.…

李沐读论文笔记--大模型时代下做科研的四个思路

大模型时代下做科研的四个思路 0. 视频来源&#xff1a;1. 提高效率&#xff08;更快更小&#xff09;1.1 PEFT介绍(parameter efficient fine tuning)1.2 作者的方法1.3 AIM效果1.3.1AIM 在 K400 数据集上的表现1.3.2AIM 在 Something-Something 数据集、K700 数据集和 Diving…

《程序员面试金典(第6版)》面试题 16.01. 交换数字(位运算符,异或性质)

题目描述 编写一个函数&#xff0c;不用临时变量&#xff0c;直接交换numbers [a, b]中a与b的值。 示例&#xff1a; 输入: numbers [1,2]输出: [2,1] 提示&#xff1a; numbers.length 2-2147483647 < numbers[i] < 2147483647 解题思路与代码 这道题不让使用额外…

spring getway的配置

1. 创建工程 getway-server 2. 添加 pom 依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 3. 添加启动类 4. 添加配置文件&#xff…

【安全防御】IPsec VPN

1.什么是数据认证&#xff0c;有什么用&#xff0c;有哪些实现的技术手段&#xff1f; 在计算机和网络安全领域中&#xff0c;数据认证是指验证数据在传输和存储过程中的完整性、真实性和合法性的过程。数据在传输和存储过程中容易受到数据篡改、损坏或未经授权的访问和修改的…

用Keras单层网络预测银行客户流失率

用Keras单层网络预测银行客户流失率 描述 已知一批客户数据&#xff0c;来预测某个银行的客户是否流失。通过学习历史数据&#xff0c;如果机器能判断出哪些客户很有可能在未来两年内结束在银行的业务&#xff08;这当然是银行所不希望看到的&#xff09;&#xff0c;那么银行…

基于vue+laravel技术框架开发的:PHP不良事件上报系统源码

医院安全&#xff08;不良&#xff09;事件上报系统源码&#xff0c;PHP不良事件上报系统源码 系统定义&#xff1a; 规范医院安全&#xff08;不良&#xff09;事件的主动报告&#xff0c;增强风险防范意识&#xff0c;及时发现医院不良事件和安全隐患&#xff0c;将获取的医…

成都建博会:家居行业数字营销金点子 句句戳心坎,先收藏

四月&#xff0c;不仅是人间最美天&#xff0c;也是第二季度的开始。随着气温上升&#xff0c;行业进入了活跃期。对于西南地区的家居行业从业者来说&#xff0c;来一趟一年一度的成都建博会&#xff0c;总能获得无尽的灵感&#xff0c;对后续更加充满期待。而与同行的交流&…