当前位置: 首页> 游戏> 评测 > qt 读写json格式的文件应用举例 工具函数

qt 读写json格式的文件应用举例 工具函数

时间:2025/7/27 14:06:14来源:https://blog.csdn.net/xie__jin__cheng/article/details/139988728 浏览次数:0次

1.概要

要做一个json的读取功能,先做一个原型,然后在实际的工程中套用

2.代码

2.1 main.cpp

#include "widget.h"
#include "inijsonparams.h"#include <QApplication>int main(int argc, char *argv[])
{IniJsonParams iniJsonParams;//iniJsonParams.save();iniJsonParams.load();//QApplication a(argc, argv);//Widget w;//w.show();//return a.exec();qDebug() << "Hello, World!";return 0;
}

2.2 datamod.h

#ifndef DATAMOD_H
#define DATAMOD_H
#include <QString>
#include <QList>class DataMod
{
public:DataMod();QString name;int age;QString email;QList<QString> hobbies;void myView();
};#endif // DATAMOD_H

2.3 datamod.cpp

#include "datamod.h"
#include <QDebug>DataMod::DataMod() {}void DataMod::myView(){qDebug() << "Hello, World!";qDebug() << "name:"<<this->name;qDebug() << "age:"<<this->age;qDebug() << "email:"<<this->email;for(int i=0;i<this->hobbies.count();i++){qDebug() << "hobbies"<<i<<":"<<this->hobbies[i];}
}

2.4 inijsonparams.h

#ifndef INIJSONPARAMS_H
#define INIJSONPARAMS_Hclass IniJsonParams
{
public:IniJsonParams();
//private:void load();void save();
};#endif // INIJSONPARAMS_H

2.5 inijsonparams.cpp

#include "inijsonparams.h"
#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
#include "datamod.h"IniJsonParams::IniJsonParams() {}void IniJsonParams::load(){DataMod dm;QString fileName="test.txt";QFile file(fileName);if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){//输出logreturn;}// 读取文件内容QByteArray jsonData = file.readAll();QJsonParseError jsonError;QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &jsonError);QJsonObject obj = jsonDoc.object();QJsonObject us = obj["user"].toObject();dm.name = us["name"].toString();dm.age = us["age"].toInt();dm.email = us["email"].toString();QJsonArray array = us["hobbies"].toArray();for(int i=0;i<array.count();i++){dm.hobbies.append(array[i].toString());}dm.myView();}void IniJsonParams::save(){QString fileName="test.txt";// 创建一个 QJsonObjectQJsonObject jsonObject;QJsonObject user;user.insert("name","John Doe");user.insert("age",30);user.insert("email","johndoe@example.com");QJsonArray hobbiesArray;hobbiesArray.append("hiking");hobbiesArray.append("reading");user.insert("hobbies", hobbiesArray);jsonObject.insert("user",user);//jsonObject["user"].toObject().insert("hobbies", hobbiesArray);// 将 QJsonObject 转换为 QJsonDocumentQJsonDocument jsonDoc(jsonObject);// 写入文件QFile file(fileName);if (file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {file.write(jsonDoc.toJson(QJsonDocument::Indented)); // 缩进格式化输出file.close();}
}

3.运行结果

3.1 读的结果

Hello, World!
name: "John Doe"
age: 30
email: "johndoe@example.com"
hobbies 0 : "hiking"
hobbies 1 : "reading"
Hello, World!

3.2 写的结果(test.txt)

{"user": {"age": 30,"email": "johndoe@example.com","hobbies": ["hiking","reading"],"name": "John Doe"}
}

关键字:qt 读写json格式的文件应用举例 工具函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: