C++使用rapidjson读写json数据

news2024/9/22 15:40:09

一、背景

RapidJSON简介及使用_fengbingchun的博客-CSDN博客 

rapidjson是腾讯的高效C++ Json解析器,只有头文件,可跨平台使用

mirrors / Tencent / rapidjson · GitCode

二、读数据

使用rapidjson解析和组装json_youyicc的博客-CSDN博客

 

三、写数据

#include "rapidjson/document.h"
#include "rapidjson/error/en.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
#include "rapidjson/istreamwrapper.h"
#include "rapidjson/prettywriter.h"

//通过rapidjson生成json数据
QString QosMonitor::generateJsonDataByRapidJson(dataInfo& data) {
	rapidjson::StringBuffer json;
	rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(json);
	try {
		writer.StartObject();

		writer.String("500001");
		writer.StartArray();
		writer.StartObject();
		writer.String("name");
		writer.String(data.name.toStdString().c_str());
		writer.String("endpoint");
		writer.String(data.endpoint.toStdString().c_str());
		writer.String("remoteMac");
		writer.String(data.remoteMac.toStdString().c_str());
		writer.String("loginTime");
		writer.String(data.loginTime.toStdString().c_str());
		writer.String("logonNum");
		writer.String(data.logonNum.toStdString().c_str());
		writer.String("logonLimit");
		writer.String(data.logonLimit.toStdString().c_str());
		writer.String("compressTag");
		writer.String(data.compressTag.toStdString().c_str());
		writer.String("iceBzip2");
		writer.String(data.iceBzip2.toStdString().c_str());
		writer.String("messageNum");
		writer.String(data.messageNum.toStdString().c_str());
		writer.String("messageSize");
		writer.String(data.messageSize.toStdString().c_str());

		writer.String("speed");
		writer.String(data.speed.toStdString().c_str());
		writer.String("maxSpeed");
		writer.String(data.maxSpeed.toStdString().c_str());
		writer.String("mps");
		writer.String(data.mps.toStdString().c_str());
		writer.String("maxMps");
		writer.String(data.maxMps.toStdString().c_str());

		writer.String("type");
		writer.String(data.type.toStdString().c_str());
		writer.String("location");
		writer.String(data.location.toStdString().c_str());

		writer.EndObject();
		writer.EndArray();

		writer.EndObject();
	}
	catch (...) {}

	QFile file("../../binx64/release/2.json");
	file.open(QIODevice::WriteOnly);
	// 将json以文本形式写入文件并关闭文件。
	file.write(json.GetString());
	file.close();


	//把json数据转为QString
	QString s = QString(json.GetString());
	return s;
}

 

 

 

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

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

相关文章

AES加解密算法强化训练

目标&#xff1a; 使用openssl算一遍&#xff0c;再使用网页在线工具算一遍&#xff0c;看看结果是否一样 构造数据 如何编写一个二进制规律性的文件, 比如你可以编写一个"0123456789abcdef"的文本文件&#xff0c;记得删除换行符 然后用ultraedit打开&#xff0c;…

常见加密算法介绍

文章目录 一、背景&#xff1a;二、几种常见的加密算法1. 不可逆加密算法&#xff08;哈希算法&#xff09;&#xff1a;1.1 MD51.1.1 优点&#xff1a;1.1.2 缺点&#xff1a;1.1.3 Demo&#xff1a;1.1.4 案例分析&#xff1a; 1.2 SHA-2561.2.1 Demo&#xff1a;1.2.2 案例分…

day19三数之和 int *returnSize,int ** returnColumnSizes的理解

题目描述 *1.关于参数 int returnSize, int ** returnColumnSizes的理解 具体看这篇文章 [https://blog.csdn.net/m0_52775920/article/details/121461911?spm1001.2014.3001.5502] &#xff08;1&#xff09;*returnSize 的理解 returnSize 返回大小为returnSize的二维数组&…

代码随想录算法二刷 day49 | 动态规划 之121 买卖股票的最佳时机 122 买卖股票的最佳时机II

day49 121. 买卖股票的最佳时机1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 122.买卖股票的最佳时机II 121. 买卖股票的最佳时机 题目链接 解题思路&#xff1a; 动规五部曲分析如下&#xf…

【Linux-Windows】 关于PCI和PCIE接口

【Linux-Windows】 关于PCI和PCIE接口 1、背景2、物理外观区别3、其它区别 1、背景 最近在配置电脑主机。 由于要在主机上安装了一块PCI接口的固高控制卡&#xff0c;其系统架构如下图&#xff1a; 使用的PCI接口的固高控制卡外形如下图&#xff1a; 为此&#xff0c;我额外…

2023-7-10-第十五式命令模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

java 代码块

文章目录 代码块的描述静态代码块静态代码块的特点 非静态代码块分析加载顺序 代码块的描述 代码块(或初始化块)的作用&#xff1a; 对Java类或对象进行初始化 代码块(或初始化块)的分类&#xff1a; 一个类中代码块若有修饰符&#xff0c;则只能被static修饰&#xff0c;称为…

嵌入式_一种非常简单实用的基于GD32的裸机程序框架

嵌入式_一种非常简单实用的基于GD32的裸机程序框架 搜索了一下关于GD或ST裸机程序的问题&#xff0c;网上有非常多也非常的例子&#xff0c;但是针对裸机开发的程序框架却比较少&#xff0c;这里简单整理了一下在项目中使用过的一种比较小巧便携的裸机程序框架&#xff08;确切…

cloud Alibab+nacos+gateway集成swaggerui,统一文档管理(注意点)

首先说明&#xff1a;本文只说整合注意点 效果图和功能参考链接 1.使用gateway访问nacos服务&#xff0c;503 在网关服务添加依赖即可解决 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign&…

1.入门matlab数理统计随机数的产生(matlab程序)

1.简述 一、常见分布的随机数的产生 随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数&#xff0c;比如在从统计总体中抽取有代表性的样本的时候。而matlab直接提供了产生随机数的通用函数&#xff0c;但针对不同的分布&#xff0c;函数形式会有所不同&#…

DITA技巧:将DITA或Markdown发布成CHM

- 1 - 场景 CHM是英文Compiled HTML Help的缩写&#xff0c;是微软公司专有的联机帮助格式&#xff0c;由HTML页面、索引和其他导航工具的集合组成。这些文件被压缩并部署为二进制格式&#xff0c;扩展名为.CHM&#xff0c;用于编译HTML。CHM格式通常用于软件文档。 虽然CHM…

16. 最接近的三数之和(双指针+减去多余步骤)

16. 最接近的三数之和 双指针减去多余步骤测试代码测试结果 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&…

JSP环境搭建教程(保姆级!!)

简介 Java Server Pages (JSP) 是一种由 Sun Microsystems 开发的用于创建动态网页的技术。它是 Java EE (Java Enterprise Edition) 技术的一部分&#xff0c;允许开发者在 HTML 中嵌入 Java 代码&#xff0c;从而实现动态内容的生成。 JSP 主要由两部分组成&#xff1a;静态…

LiveGBS流媒体平台GB/T28181功能-如何对接海康大华宇视等监控摄像头报警消息报警订阅国标报警信息

LiveGBS流媒体平台GB/T28181功能-如何对接海康大华宇视等监控摄像头报警消息报警订阅国标报警信息 1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅 1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.3.3…

红外雨量计(光学雨量传感器)在预防地质灾害中怎样发挥作用

红外雨量计&#xff08;光学雨量传感器&#xff09;在预防地质灾害中怎样发挥作用 红外雨量计是一种利用红外线原理测量雨量的设备。在预防地质灾害中&#xff0c;红外雨量计可以发挥以下作用&#xff1a; 1.准确测量雨水的降雨量。地质灾害往往与雨水的降雨量密切相关&#x…

【Java EE】-JVM

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 雨下整夜 我的爱溢出就像雨水 ——《七里香》 主要内容&#xff1a;JDK&#xff0c;JRE&#xff0c;JVM三者之间的联系。JVM内存区域划分&#xff1a;本地方法栈…

物联网技术的智能配电室综合监控系统设计

安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;配电室是电力系统的重要基础设施&#xff0c;可以保障供配电系统的安全稳定运行。但是&#xff0c;配电室数量多、部署分散、管理复杂&#xff0c;人工现场巡检管理方式费时费工、错误率高&#xff0c;如果发生故障隐…

智能工厂-亿发生产型企业信息化ERP管理系统,打造智能制造工业

对于制造业来说&#xff0c;生产就是发展的动力。传统制造工厂在生产管理中存在很多不足和缺点&#xff0c;流程管理混乱&#xff0c;生产状态不稳定。在制造工厂中实施机械生产工厂ERP管理系统可以解决生产管理中低效率问题&#xff0c;使得制造工厂向着更科学化、智能化的方向…

ETHERNET/IP转RS485/RS232网关profinet与Ethernet通讯卡

网络数据传输遇到的协议不同、数据互通麻烦等问题&#xff0c;一直困扰着大家。然而&#xff0c;现在有一种神器——远创智控YC-EIP-RS485/232&#xff0c;它将ETHERNET/IP网络和RS485/RS232总线连接在一起&#xff0c;让数据传输更加便捷高效。 那么&#xff0c;它是如何实现…

Jmeter接口关联(一)【使用json层级方式提取值】与python中使用层级方式提取值 完成接口关联

文章目录 前言一、按照 json 的路径来提取 ​​​​​​​&#xff08;1&#xff09;成功匹配到数据的案例&#xff08;按照层级匹配&#xff09;&#xff08;2&#xff09;失败未匹配到数据的案例&#xff08;没有按照层级匹配&#xff09;json提取器二、使用完整的接口关联&a…