在Qt中,你可以使用QJsonDocument
和QJsonObject
类来解析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助手提供,问题来源于学员提问