QT开发中文网

qt 解析下面这种json数据{ "type": 11, "person": [ { "send_account": "", "recv_account": "", "msg": [ { "msg_noread": "" }, { "msg_noread": "" }, ... ] }, { ...

在Qt中,你可以使用QJsonDocumentQJsonObject类来解析JSON数据。以下是一个简单的示例代码:

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

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

    QString json_data = R"(
    {
        "type": 11,
        "person": [
            {
                "send_account": "",
                "recv_account": "",
                "msg": [
                    {
                        "msg_noread": ""
                    },
                    {
                        "msg_noread": ""
                    }
                ]
            },
            {
                "send_account": "",
                "recv_account": "",
                "msg": [
                    {
                        "msg_noread": ""
                    },
                    {
                        "msg_noread": ""
                    }
                ]
            }
        ]
    })";

    // 解析 JSON 数据
    QJsonDocument doc = QJsonDocument::fromJson(json_data.toUtf8());
    if (!doc.isNull()) {
        if (doc.isObject()) {
            QJsonObject obj = doc.object();

            // 获取 type 值
            int type_value = obj.value("type").toInt();
            qDebug() << "Type:" << type_value;

            // 遍历 person 数组
            QJsonArray person_array = obj.value("person").toArray();
            for (const QJsonValue& person_value : person_array) {
                if (person_value.isObject()) {
                    QJsonObject person_obj = person_value.toObject();

                    QString send_account = person_obj.value("send_account").toString();
                    QString recv_account = person_obj.value("recv_account").toString();
                    
                    qDebug() << "Send Account:" << send_account;
                    qDebug() << "Recv Account:" << recv_account;

                    // 遍历 msg 数组
                    QJsonArray msg_array = person_obj.value("msg").toArray();
                    for (const QJsonValue& msg_value : msg_array) {
                        if (msg_value.isObject()) {
                            QJsonObject msg_obj = msg_value.toObject();

                            QString msg_noread = msg_obj.value("msg_noread").toString();
                            qDebug() << "Message:" << msg_noread;
                        }
                    }
                }
            }
        }
    }

    return a.exec();
}

请注意,上述代码中的 json_data 是包含待解析的JSON字符串。

你可以将这段代码放入Qt项目中,并根据需要修改和扩展来适应你的具体情况。

希望以上信息对你有所帮助!如有进一步问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9216

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?