Parse jsonarray?
Parse jsonarray?
我有一个JSON,如下所示:
{
"agentsArray": [{
"ID": 570,
"picture": "03803.png",
"name": "Bob"
}, {
"ID": 571,
"picture": "02103.png",
"name": "Tina"
}]
}
现在我尝试循环遍历每个数组元素。使用qt-json
库https://github.com/da4c30ff/qt-json
尝试:
foreach(QVariantMap plugin, result["agentsArray"].toList()) {
qDebug() << " -" << plugin["ID"].toString();
}
但不能让它发挥作用,你知道我做错了什么吗?
我建议在Qt 5中使用QtCore中的QJson*类。由于机器可读二进制存储为读写进行了优化,因此它们非常高效,而且由于它们具有良好的API,因此使用它们也非常方便。
这个代码库对我来说很好,但请注意,我现在忽略了所有的错误检查,这对生产代码来说不是一个好建议。这分别只是一个原型代码。
main.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;
}
main.pro
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
构建并运行
qmake && make && ./main
输出
570
571
output
是QByteArray型
QJsonDocument doc(QJsonDocument::fromJson(output));
foreach (const QJsonValue & v, doc.array()){
Person person;
person.fromJson(v.toObject());
}
相关文章:
- 调用 Parse int 函数时编译 parse 整数程序时出现问题
- Live555 Parse nal单位是否被送出
- 在一个不带参数的函数的声明中指定void是否解决了Most Vexing Parse
- "most vexing parse"中的括号应该做什么?
- 创建新元素崩溃后,tinyxml2 xmldocument parse
- 解析器名称定义为默认值:%start 后"parse"警告野牛
- Parse url_encoded_fmt_stream_map
- Clang Parse公共枚举课程
- 当const在另一行处的const时,doxygen parse const成员函数不正确
- 在 exiv2 中"unable to parse" IPTC 日期到 XMP 日期时间
- 了解'most vexing parse' - 为什么允许歧义语法?
- 升级 XCode 后出现"Parse issue: Unknown type name"错误
- 有没有办法强制"most vexing parse"是错误的,即使是逐个类?
- 也会 boost::format.parse() 重置它的缓冲区
- 如何在 json-Glib 中打印 Jsonarray
- 匿名函数,"Parse Issue: Expected Expression"
- 为什么v8::JSON::Parse比NodeJS的JSON::Parse慢得多?
- 如何使用parse/phrase_parse函数
- Boost::spirit::qi::parse语法不能正常工作
- Parse jsonarray?