QJsonArray对其对象排序

#include <QCoreApplication>
#include <QJsonArray>
#include <QJsonObject>
#include <QDebug>
#include <QList>

// 比较函数,用于指定排序规则
bool compareJsonObjects(const QJsonObject &obj1, const QJsonObject &obj2)
{
    return obj1["key"].toString() < obj2["key"].toString();
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建一个包含QJsonObject对象的QJsonArray
    QJsonArray jsonArray;
    
    QJsonObject obj1;
    obj1["key"] = "apple";
    jsonArray.append(obj1);

    QJsonObject obj2;
    obj2["key"] = "banana";
    jsonArray.append(obj2);

    QJsonObject obj3;
    obj3["key"] = "orange";
    jsonArray.append(obj3);

    // 将QJsonArray中的QJsonObject对象提取出来放入QList中
    QList<QJsonObject> objectList;
    for (const QJsonValue &value : jsonArray) {
        objectList.append(value.toObject());
    }

    // 使用Qt的排序算法对QList进行排序
    qSort(objectList.begin(), objectList.end(), compareJsonObjects);

    // 输出排序后的结果
    for (const QJsonObject &obj : objectList) {
        qDebug() << obj["key"].toString();
    }

    return a.exec();
}

 

posted @ 2024-04-28 17:52  远方是什么样子  阅读(30)  评论(0编辑  收藏  举报