QT读写JSON文件
QT对JSON的处理
- JSON的样式
- 1,Json对象
- 2,Json数组
- QT中对JSON处理
- 1,写入JSON文件
- 2,解析JSON文件
JSON的样式
1,Json对象
JSON的样式是可以相互嵌套的,作为程序的配置文件,JSON的嵌套不要太多。
{
“age”:“24”,
“name”:“sdf”,
“like”:[“you”,“he”,“she”],//嵌套数组
"person”:{“father”,“mother”}//嵌套对象
`}
2,Json数组
[1,2,3,{“1”:“1”,“2”,“2”,“3”:“3”},[1,2,3,4,5,6,7,8],9]
QT中对JSON处理
需要包含的头文件:
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QByteArray>
#include <QJsonValue>
#include <QFile>
#include <QDebug>
1,写入JSON文件
//1.对象写入JSON文件
///参数:文件的名字
void writeJsonFile(char* filename)
{QJsonObject object{{"property1", 1},{"property2", 2}};QJsonObject Json;//对象插入值Json.insert("name","doudou");Json.insert("age",12);//插入子对象QJsonObject subJon;subJon.insert("city","benjing");Json.insert("now",subJon);//插入数组QJsonArray array;array.insert(0,1);array.insert(1,2);Json.insert("num",array);Json.insert("z",object);//QJsonObject转成QJsonDocument(const QJsonObject &object)QJsonDocument jsonDoc(Json);//将QJsonDocument转成QByteArryQByteArray byteArray=jsonDoc.toJson();//文件操作QFile(const QString &name, QObject *parent)QFile file(filename);//打开文件file.open(QFileDevice::WriteOnly);//写文件file.write(byteArray);
}
//2.数组写入文件
void writeJsonFile2(char* filename)
{QJsonArray Json,subJson;subJson.insert(0,0);subJson.insert(1,1);subJson.insert(2,2);subJson.insert(3,3);subJson.append(4);subJson.append(5);Json.insert(0,subJson);QJsonObject object;object.insert("a","a");object.insert("b","b");object.insert("c","c");object.insert("d","d");Json.append(object);//QJsonObject转成QJsonDocument(const QJsonObject &object)QJsonDocument jsonDoc(Json);//将QJsonDocument转成QByteArryQByteArray byteArray=jsonDoc.toJson();//文件操作QFile(const QString &name, QObject *parent)QFile file(filename);//打开文件file.open(QFileDevice::WriteOnly);//写文件file.write(byteArray);
}
2,解析JSON文件
void readJsonFromFile(char* filename)
{QFile file;//打开的文件名file.setFileName(filename);//打开以读文件file.open(QIODevice::ReadOnly);//读文件所有的数据QByteArray bytearray=file.readAll();//QByteArray转为QJsonDocumentQJsonDocument jsonDoc;jsonDoc.fromJson(bytearray);//QJsonDocument转为QJsonObject还是QJsonArrayif(jsonDoc.isObject()){QJsonObject json=jsonDoc.object();//获取对象中的所有的值QStringList keys =json.keys();//通过迭代器访问元素for(QList<QString>::iterator i=keys.begin();i<keys.end();i++){QChar* k=i->begin();qDebug()<<k;}//通过函数来访问for(int i=0;i<keys.size();i++){QString key=keys.at(i);//根据key值获取value值QJsonValue jsonvalue=json.value(key);QString key1=keys[i];QJsonValue jsonvalue1=json[key];//判断value值的类型if(jsonvalue.isString()){qDebug()<<jsonvalue.toString();}else if(jsonvalue.isDouble()){qDebug()<<jsonvalue.toInt();}else if(jsonvalue.isDouble()){qDebug()<<jsonvalue.toBool();}else if(jsonvalue.isObject()){QJsonObject obj=jsonvalue.toObject();for(int j=0;j<obj.size();j++){QString subkey=keys.at(i);//根据key值获取value值QJsonValue subjsonvalue=json.value(key);qDebug()<<subjsonvalue.toString();}}else if(jsonvalue.isArray()){QJsonArray array=jsonvalue.toArray();for(int j=0;j<array.size();j++){QString subkey=keys.at(i);//根据key值获取value值QJsonValue subjsonvalue=json.value(key);if(subjsonvalue.isString()){qDebug()<<subjsonvalue.toString();}}}}}if(jsonDoc.isArray()){QJsonArray arr=jsonDoc.array();}
}
QT读写JSON文件相关推荐
- java如何读写json文件
java如何读写json文件 在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是 ...
- Qt读取Json文件数据
Qt读取Json文件数据 void TcpServerCfg::initServerCfgList() {serverCfgList.clear();QString name = "./co ...
- [QT操作XML]QT读写XML文件,QT修改XML文件
[QT操作XML]QT读写XML文件 XML简介 QT操作XML,写入.读取.修改 XML效果演示 XML简介 概念:Extensible Markup Language 可扩展标记语言(可扩展:标签 ...
- python 读写json文件
1. python中和json读写相关的主要是json模块的以下四个函数: dumps() 将一个python对象编码为json对象 loads() 讲一个json对象解析为python对象 dump ...
- python json loads_python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)...
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.dumps()和json.loads()是json ...
- Qt 读写txt文件
目录 1.写txt文件 2.读txt文件 QT 读写txt文件 二进制文件的读写文件可以使用 QFile 类.QStream 文本文件的读写建议使用 QTextStream 类,它操作文件更加方便. ...
- Qt读写JSON,以及使用QTreeView展示和编辑JSON数据
0.前言 JSON(JavaScript Object Notation)是一种轻量级的结构化数据格式,相对于XML语法更简洁.它具有6种基本数据类型:bool(true或false字符串表示).do ...
- python json.load_python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)...
原博文 2018-04-22 09:11 − JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.du ...
- python 读写 json文件
json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ...
最新文章
- linux快速上手之多服务器间路由配置
- python3.4用循环往mysql5.7中写数据并输出
- 【Linux】一步一步学Linux——dnsdomainname命令(174)
- numpy 转置_Numpy基础:数组转置和轴对换
- 数据库基础 数据库设计三大范式
- 波音正在对737 Max进行软件升级 改善飞行员培训计划
- 点击图片添加文件在Chrome中使用的兼容问题
- mysql的分页存储过程,能够传出总记录数
- UReport2导出word报错
- 史上最全的中药口诀大全
- union并不绝对比or的执行效率高
- 固态硬盘SSD之Flash闪存的基本概念
- 智能家居软件测试用例,智能家居助理HomeAssistant的实践和测试
- Markdown中表格中内容换行、左对齐等基本操作
- JZOJ-senior-3502. 【NOIP2013模拟11.4B组】方格游戏
- Canvas—2D 绘图
- 点云损失函数Chamfer Distance 和 Earth Mover‘s Distance
- Code With Me插件,IDEA多人协作
- 怎样录制gif动态图
- fir.im关于iOS Ad hoc内测版下载详细流程
热门文章
- VLAN的划分和验证(简易版)
- React-Router4 嵌套路由实现的两种方式以及路由过渡动画的实现方式
- win系统下不借助任何软件将FLV格式/qlv/ikv格式视频文件转换成mp4格式的视频
- 【好工具分享】时间管理利器——今目标
- 如何完美适配iPhone4、5、6尺寸和字体问题
- 红旗Linux操作系统下载(转)
- GAMES104实录 | 如何构建游戏世界(上)
- 设置网站服务器,网站服务器如何设置
- 计算机网络校园网设计讨论与分析,浅论无线校园网系统分析与设计_计算机网络毕业论文...
- 缓存穿透、缓存击穿、缓存雪崩区别