一、问题
json文件中的内容
[
{
"num": "1111",
"id": "2222",
"commsyncword": "3333",
"period" :
{
"start": "4444",
"end": "5555"
}
},
{
"num": "1112",
"id": "2223",
"commsyncword": "3334",
"period" :
{
"start": "4445",
"end": "5556"
}
}
]
二、解析过程
直接代码展示:
{
QFile file( "D:/test.json");
if (!file.open(QIODevice::ReadWrite)) {
qDebug() << "文件打开失败!\n";
exit(1);
}
qDebug() << "文件打开成功\n";
QJsonParseError jsonParserError;
QJsonDocument jsonDocument = QJsonDocument::fromJson(file.readAll(), &jsonParserError);
if (!jsonDocument.isNull() &&jsonParserError.error == QJsonParseError::NoError)
{
qDebug() << "文件解析成功\n";
if (jsonDocument.isArray())
{
QJsonArray array = jsonDocument.array(); // 转数组
int nSize = array.size();
for (int i = 0; i < nSize; ++i)
{
qDebug() << array.at(i).toObject().value("num").toString();
qDebug() << array.at(i).toObject().value("id").toString();
qDebug() << array.at(i).toObject().value("commsyncword").toString();
if (array.at(i).toObject().value("period").isObject())
{
QJsonObject jsonObject = array.at(i).toObject().value("period").toObject();
qDebug() << "start is " << jsonObject.value("start").toString().toInt();
qDebug() << "end is " << jsonObject.value("end").toString().toInt();
}
}
}
}
file.close();
qDebug() << "按任意键退出程序\n";
}
本文介绍了如何使用QT库解析包含数组和对象的JSON文件,通过具体的代码展示了解析过程,详细讲解了遇到的问题和解决方案。

3075

被折叠的 条评论
为什么被折叠?



