gpt4 book ai didi

c++ - 解析jsonarray?

转载 作者:可可西里 更新时间:2023-11-01 15:00:52 25 4
gpt4 key购买 nike

我有一个像下面这样的 JSON:

{
"agentsArray": [{
"ID": 570,
"picture": "03803.png",
"name": "Bob"
}, {
"ID": 571,
"picture": "02103.png",
"name": "Tina"
}]
}

现在我试图遍历每个数组元素。使用 qt-jsonhttps://github.com/da4c30ff/qt-json

尝试过:

            foreach(QVariantMap plugin, result["agentsArray"].toList()) {
qDebug() << " -" << plugin["ID"].toString();
}

但无法让它工作,知道我做错了什么吗?

最佳答案

我建议在 Qt 5 中使用 QtCore 中的 QJson* 类。由于针对读写优化的机器可读二进制存储,它们非常高效,而且由于它们具有良好的 API,使用它们也非常方便.

这个代码库对我来说工作得很好,但请注意,我现在忽略了所有的错误检查,这对生产代码来说不是一个好的建议。这分别只是一个原型(prototype)代码。

主.json

{
"agentsArray": [{
"ID": 570,
"picture": "03803.png",
"name": "Bob"
}, {
"ID": 571,
"picture": "02103.png",
"name": "Tina"
}]
}

main.cpp

#include <QFile>
#include <QByteArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main()
{
QFile file("main.json");
file.open(QIODevice::ReadOnly | QIODevice::Text);
QByteArray jsonData = file.readAll();
file.close();

QJsonDocument document = QJsonDocument::fromJson(jsonData);
QJsonObject object = document.object();

QJsonValue value = object.value("agentsArray");
QJsonArray array = value.toArray();
foreach (const QJsonValue & v, array)
qDebug() << v.toObject().value("ID").toInt();

return 0;
}

主程序

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

构建并运行

qmake && make && ./main

输出

570 
571

关于c++ - 解析jsonarray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com