Qt 中Json文件的操作

Json文件的读取

    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文件的写入

//根据情况设定所需要的类,并实现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()<<"失败";
    }

运行之后:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Qt 的 QJsonDocument 类来读取 JSON 文件数据,并使用 QJsonObject 类来对 JSON 数据进行操作和排序。以下是一个示例代码,展示了如何读取 JSON 文件并按照指定的键名进行排序: ```cpp #include <QJsonDocument> #include <QFile> #include <QDebug> int main() { // 读取 JSON 文件 QFile file("data.json"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open file!"; return -1; } // 解析 JSON 数据 QByteArray jsonData = file.readAll(); QJsonDocument doc = QJsonDocument::fromJson(jsonData); QJsonObject jsonObj = doc.object(); // 对 JSON 数据进行排序 QStringList keys = jsonObj.keys(); std::sort(keys.begin(), keys.end(), Qt::CaseInsensitive); // 输出排序后的 JSON 数据 QJsonObject sortedJsonObj; foreach (const QString& key, keys) { sortedJsonObj.insert(key, jsonObj[key]); } qDebug() << QJsonDocument(sortedJsonObj).toJson(); return 0; } ``` 在上面的示例代码,我们首先读取了一个名为 "data.json" 的 JSON 文件,然后使用 QJsonDocument 类将其解析为 JSON 数据,并将其存储在 QJsonObject 。接着,我们使用 QStringList 类型的 keys 变量来存储 JSON 数据所有的键名,并使用 std::sort 函数对其进行排序。最后,我们创建一个新的 QJsonObject 类型的 sortedJsonObj 对象,并将排好序的 JSON 数据按照键名重新插入到 sortedJsonObj 。最后,我们使用 QJsonDocument 类的 toJson 函数将其输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值