Qt 中Json文件的操作

Json文件的读取

cpp 复制代码
    QFile file("data.json"); //准备好的文件

    file.open(QIODevice::ReadOnly|QIODevice::Text);
    QByteArray arr = file.readAll();

    QJsonDocument jsonDoc = QJsonDocument::fromJson(arr);
    QJsonObject jsonObj = jsonDoc.object();

    qint32 id = jsonObj["id"].toInt();
    QString glassid = jsonObj["Glassid"].toString();
    bool result = jsonObj["Result"].toBool();
    qDebug()<<id<<glassid<<result;

提前准备的文件内容:

Json文件的写入

cpp 复制代码
//根据情况设定所需要的类,并实现tojson方法 
class Person
{
public:
    Person();
    Person(int id,QString Glassid,bool Result);
    int Id;
    QString Glassid;
    bool Result;

    QJsonObject tojson()const{  //实现方法
        QJsonObject obj;
        obj["id"]=this->Id;
        obj["Glassid"]=this->Glassid;
        obj["Result"]=this->Result;
        return obj;
    }
};


    person = Person(10,"20310120727",false); //Person的构造函数
    QJsonObject obj1 = person.tojson();;
    QJsonDocument jsonDoc1(obj1);

    QFile file1("data.json");
    if(file1.open(QIODevice::WriteOnly|QIODevice::Text)){
        file1.write(jsonDoc1.toJson());
        file1.close();
    }
    else {
        qDebug()<<"失败";
    }

运行之后:

相关推荐
Ryan_Gosling1 小时前
QT-异步编程
开发语言·qt
信必诺6 小时前
GStreamer —— 2.2、Windows下Qt加载GStreamer库后运行 - “教程2:GStreamer 概念“(附:完整源码)
qt·gstreamer
宁静致远20217 小时前
qt 操作多个sqlite文件
qt·sqlite·嵌入式linux开发
laimaxgg7 小时前
Qt常用控件之表格QTableWidget
开发语言·前端·c++·qt·qt5·qt6.3
trabecula_hj9 小时前
SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式
json·excel·spreadjs·spreadvue
阿珊和她的猫9 小时前
SyntaxError: Invalid or unexpected token in JSON at position x
json·状态模式
四维碎片9 小时前
Visual studio + Qt 项目配置管理
ide·qt·visual studio
结衣结衣.13 小时前
【Qt】自定义信号和槽函数
开发语言·c++·qt·c++11
Tipriest_13 小时前
vscode user settings.json分享
ide·vscode·json
勇敢滴勇1 天前
解决 Qt 项目中出现的OPENSSL_Uplink(00007FFA9E04EC88,08): no OPENSSL_Applink
开发语言·qt