当前位置: 首页 > news >正文

JSON文件读写

1、依赖文件

#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
#include <QStringList>

2、头文件

bool ReadJsonFile(const QString& filePath="");
bool WriteJsonFile(const QString& filePath="");

3、源文件

bool Widget::ReadJsonFile(const QString& filePath/*=""*/)
{// 读取JSON文件QFile file("data.json");if (!file.open(QIODevice::ReadOnly)) {qDebug() << "Failed to open JSON file.";return false;}QByteArray jsonData = file.readAll();file.close();// 解析JSON数据QJsonParseError parseError;QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &parseError);if (parseError.error != QJsonParseError::NoError) {qDebug() << "Failed to parse JSON:" << parseError.errorString();return false;}// 获取根对象QJsonObject jsonObj = jsonDoc.object();// 读取JSON数据QString name = jsonObj["name"].toString();int age = jsonObj["age"].toInt();qDebug() << "name:" << name;qDebug() << "age:" << age;QJsonObject jsonSubObj = jsonObj["hobbies"].toObject();QString type1 = jsonSubObj["type1"].toString();QString type2 = jsonSubObj["type2"].toString();qDebug() << "type1:" << type1;qDebug() << "type2:" << type2;return true;
}
bool Widget::WriteJsonFile(const QString& filePath/*=""*/)
{// 创建 JSON 对象QJsonObject jsonObj;jsonObj["name"] = "JSON";jsonObj["age"] = 20;QJsonObject jsonSubObj;jsonSubObj["type1"] = "Reading";jsonSubObj["type2"] = "Music";jsonObj["hobbies"] = jsonSubObj;// 将 JSON 对象转换为 JSON 文档QJsonDocument jsonDoc(jsonObj);// 将 JSON 文档转换为 JSON 字符串QByteArray jsonData = jsonDoc.toJson();// 写入 JSON 字符串到文件QFile file("data.json");if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {file.write(jsonData);file.close();qDebug() << "JSON data written to file successfully.";} else{qDebug() << "Failed to open file for writing.";}return true;
}

4、执行结果

name: "JSON"
age: 20
type1: "Reading"
type2: "Music"

相关文章:

JSON文件读写

1、依赖文件 #include <QFile> #include <QJsonDocument> #include <QJsonObject> #include <QDebug> #include <QStringList>2、头文件 bool ReadJsonFile(const QString& filePath""); bool WriteJsonFile(const QString&…...

VisualStudio2022环境下Release模式编译dll无法使用TLS函数问题

Debug x86环境下正常使用TLS回调函数 切换到Release发现程序没有使用tls 到C/C > 优化中将全程序优化关闭即可...

ChatGPT基础使用总结

文章目录 一、ChatGPT基础概念大型语言模型LLMs---一种能够以类似人类语言的方式“说话”的软件ChatGPT定义---OpenAI 研发的一款聊天机器人程序&#xff08;2022年GPT-3.5&#xff0c;属于大型语言模型&#xff09;ChatGPT4.0---OpenAI推出了GPT系列的最新模型ChatGPT典型使用…...

解决报错: require is not defined in ES module scope

用node启动mjs文件报错&#xff1a;require is not defined in ES module scope 现象如下&#xff1a; 原因&#xff1a; 文件后缀是mjs, 被识别为es模块&#xff0c;但是node默认是commonjs格式&#xff0c;不支持也不能识别es模块。 解决办法&#xff1a;把文件后缀从.mjs改…...

STM32 10个工程篇:1.IAP远程升级(六)

在IAP远程升级的最后一篇博客里&#xff0c;笔者想概括性地梳理总结IAP程序设计中值得注意的问题&#xff0c;诚然市面上或者工作后存在不同版本的IAP下位机和上位机软件&#xff0c;也存在不同定义的报文格式&#xff0c;甚至对于相似的知识点不同教程又有着完全不同的解读&am…...

【智能家居项目】裸机版本——字体子系统 | 显示子系统

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 今天实现上图整个项目系统中的字体子系统和显示子系统。 目录 &#x1f004;设计思路&#x1…...

PDF中跳转到参考文献后,如何回到原文

在PDF中&#xff0c;点击了参考文献的超链接可以直接跳至参考文献的位置。 如果想从当前参考文献在回到正文中对应位置时&#xff0c;可以通过 Alt \red{\text{Alt}} Alt ← \red{\leftarrow} ← 实现。...

了解基于Elasticsearch 的站内搜索,及其替代方案

对于一家公司而言&#xff0c;数据量越来越多&#xff0c;如果快速去查找这些信息是一个很难的问题&#xff0c;在计算机领域有一个专门的领域IR&#xff08;Information Retrival&#xff09;研究如何获取信息&#xff0c;做信息检索。在国内的如百度这样的搜索引擎也属于这个…...

【多模态融合】TransFusion学习笔记(2)

接上篇【多模态融合】TransFusion学习笔记(1)。 从TransFusion-L到TransFusion ok,终于可以给出论文中那个完整的框架图了&#xff0c;我第一眼看到这个图有几个疑问: Q&#xff1a;Image Guidance这条虚线引出的Query Initialization是什么意思? Q&#xff1a;图像分支中的…...

Pyhon-每日一练(1)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

MySQL:数据库的物理备份和恢复-冷备份(3)

介绍 物理备份&#xff1a; 直接复制数据文件进行的备份 优点&#xff1a;不需要其他的工具&#xff0c;直接复制就好&#xff0c;恢复直接复制备份文件即可 缺点&#xff1a;与存储引擎有关&#xff0c;跨平台能力较弱 逻辑备份&#xff1a; 从数据库中导出数据另存而进行的备…...

功能比较:Redisson vs Jedis

Redis最流行的两个Java客户端库是Redisson和Jedis。Redisson提供内存中的数据网格功能&#xff0c;支持Redis的各种分布式对象和服务。另一方面&#xff0c;Jedis是一个更轻量级的产品&#xff0c;它缺乏其他库的某些功能。 如果你正在为Redis寻找一个Java客户端库&#xf…...

Spring web security

儅使用spring的web security時&#xff0c;默認會轉向自帶的spring security example page。而不會轉向error page。 TODO: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> &l…...

SpringCloud(二)Docker、Spring AMQP、ElasticSearch

文章目录 DockerDocker与虚拟机Docker架构镜像、容器、镜像托管平台Docker架构Docker实践 Spring AMQP简单使用案例工作队列- WorkQueue发布订阅服务FanoutExchangeDirectExchangeTopicExchange 消息转换器 ElasticSearch倒排索引IK分词器IK分词拓展与停用字典 操作索引库mappi…...

7.Tensors For Beginneers - Convector Components

介绍协向量时&#xff0c;曾说过它们有点像 行向量&#xff0c; 行向量确实以某种方式代表了协向量&#xff0c; 这里说明一下&#xff1a; 协向量是不变的&#xff1b; 协向量组件是可变的。 协向量不依赖坐标系&#xff0c;协向量的组件取决于坐标系。 当我们说协向量具有组…...

直线导轨坏了可以维修吗?

直线导轨是工业自动化设备中常用的零部件&#xff0c;其性能和使用寿命对设备的稳定运行和产能有着直接的影响&#xff0c;在生产中&#xff0c;由于各种原因&#xff0c;直线导轨会出现各种问题&#xff0c;那么&#xff0c;直线导轨的维修方法究竟是怎样的呢&#xff1f;我们…...

Java基础--泛型详解

一、背景 java推出泛型之前&#xff0c;集合元素类型可以是object类型&#xff0c;能够存储任意的数据类型对象&#xff0c;但是在使用过程中&#xff0c;如果不知道集合里面的各个元素的类型&#xff0c;在进行类型转换的时候就很容易引发ClassCastException异常。 二、概念 …...

学习搜狗的workflow,MacBook上如何编译

官网说可以在MacBook上也可以运行&#xff0c;但是编译的时候却有找不到openssl的错误&#xff1a; 看其他博客也有类似的错误&#xff0c;按照类似的思路去解决 问题原因和解决办法 cmake编译的时候&#xff0c;没有找到openssl的头文件&#xff0c;需要设置cmake编译环境下…...

Ubuntu使用cmake和vscode开发自己的项目,引用自己的头文件和openCV

创建文件夹 mkdir my_proj 继续创建include 和 src文件夹&#xff0c;形成如下的目录结构 用vscode打开项目 创建add.h #ifndef ADD_H #define ADD_Hint add(int numA, int numB);#endif add.cpp #include "add.h"int add(int numA, int numB) {return numA nu…...

2) dataset, dataloader

dataset, dataloader torchvision.datasets里面集成了一些常见的数据集,例如MNIST和CIFAR10 1) Dataset 以MNIST为例,其使用方式如下 import torch import torchvision from torchvision import transformstrain_dataset = torchvision.datasets.MNIST(root=../data,trai…...

前端实战:用HTML/CSS/JS打造交互式生日蛋糕网页应用

1. 项目概述&#xff1a;一个用代码烘焙的生日惊喜最近给朋友准备生日礼物&#xff0c;不想再走寻常路&#xff0c;琢磨着送点特别的。作为一个整天和代码打交道的人&#xff0c;我决定用最熟悉的工具——HTML、CSS和JavaScript——亲手“烘焙”一个数字生日蛋糕。这个项目“Re…...

macOS OBS虚拟摄像头技术实现指南:CoreMediaIO架构与DAL插件开发

macOS OBS虚拟摄像头技术实现指南&#xff1a;CoreMediaIO架构与DAL插件开发 【免费下载链接】obs-mac-virtualcam ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. &#x1f389;&#x1f389;&#x1f389;Cr…...

FastGithub终极提速方案:3步让GitHub访问速度翻倍

FastGithub终极提速方案&#xff1a;3步让GitHub访问速度翻倍 【免费下载链接】FastGithub github定制版的dns服务&#xff0c;解析访问github最快的ip 项目地址: https://gitcode.com/gh_mirrors/fa/FastGithub 对于开发者而言&#xff0c;GitHub访问缓慢已经成为日常开…...

从nano-SIM标准之争看硬件设计:兼容性、防呆与产业博弈

1. 项目概述&#xff1a;一场关于“小卡片”的巨头战争 在消费电子行业&#xff0c;我们常常把目光聚焦在芯片制程、屏幕刷新率或者摄像头传感器尺寸这些“大件”上。但作为一名浸淫硬件设计多年的工程师&#xff0c;我深知&#xff0c;真正决定用户体验和产品成败的&#xff0…...

python网上书店系统vue

目录技术栈选择前端模块划分后端API设计关键实现细节开发流程示例代码片段项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术栈选择 前端采用Vue 3&#xff08;Composition API&#xff09; TypeScript Vite构建工具&#…...

Rust与Godot引擎集成:使用gdext构建高性能游戏模块

1. 项目概述&#xff1a;当Rust遇上Godot 如果你是一名游戏开发者&#xff0c;同时又对Rust语言的安全性、性能和现代特性着迷&#xff0c;那么你很可能和我一样&#xff0c;曾经在两个优秀的工具之间感到难以抉择。一边是上手快、生态繁荣的Godot引擎&#xff0c;另一边是能让…...

Windows窗口置顶终极指南:AlwaysOnTop让你的重要窗口永不遮挡

Windows窗口置顶终极指南&#xff1a;AlwaysOnTop让你的重要窗口永不遮挡 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否厌倦了在多个窗口间来回切换&#xff0c;只为了查…...

ARM A64指令集架构解析与优化实践

1. A64指令集架构概述A64指令集作为ARMv8-A架构的64位执行状态核心&#xff0c;采用固定32位长度编码设计&#xff0c;这种设计在指令获取和流水线处理上具有显著优势。与传统的变长指令集相比&#xff0c;固定长度编码使得指令预取和译码阶段更加高效&#xff0c;尤其适合现代…...

FPGA以太网MAC调试架构设计与DSP优化实践

1. 项目概述&#xff1a;FPGA与以太网MAC的DSP调试架构在数字信号处理&#xff08;DSP&#xff09;的硬件实现中&#xff0c;调试环节往往成为开发效率的瓶颈。传统JTAG调试方式受限于带宽和灵活性&#xff0c;难以满足大规模数据交互的需求。我们基于Xilinx Virtex-4 FPGA平台…...

从相关性反馈到视觉理解:计算机视觉检索技术的演进与落地

1. 从“荒谬”到“范式转移”&#xff1a;一位计算机视觉先驱的二十年跋涉1995年&#xff0c;当互联网还处于襁褓之中&#xff0c;用技术自动搜索图片的想法听起来近乎“荒谬”。这是微软亚洲研究院副院长、首席研究员芮勇博士在回顾自己研究生涯起点时的感慨。二十多年后&…...