QT读取JSON文件并解析
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
(1)JSON文件(config.json)
{
"autor": "yudabo",
"staff":[
{"name":"于大博1"},
{"name":"于大博2"},
{"name":"于大博3"},
{"name":"于大博4"},
{"name":"于大博5"},
{"name":"于大博6"},
{"name":"于大博7"},
{"name":"于大博8"},
{"name":"于大博9"},
{"name":"于大博10"}
],
"data": { "name": "yudabo" }
}
(2)解析文件
QFile file("config.json");
file.open(QIODevice: :ReadOnly | QIODevice: :Text);
QString value = file.readAll();
file.close();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument: :fromJson(value.toUtf8(), &parseJsonErr);
if (! (parseJsonErr.error == QJsonParseError: :NoError)) {
QMessageBox: :about(NULL, "提示", "配置文件错误!");
return;
}
QJsonObject jsonObject = document.object();
/*
// autor字段
qDebug()<< "jsonObject[autor]==" << jsonObject["autor"].toString();
*/
// staff字段
if (jsonObject.contains(QStringLiteral("staff"))) {
QJsonValue arrayValue = jsonObject.value(QStringLiteral("staff"));
if (arrayValue.isArray()) {
QJsonArray array = arrayValue.toArray();
for (int i = 0; i < array.size(); i++) {
QJsonValue nameArray = array.at(i);
QJsonObject key = nameArray.toObject();
qDebug() << "key[name]==" << key["name"].toString();
}
}
}
// data字段
QJsonValue jsonDataValue = jsonObject.value(QStringLiteral("data"));
QJsonObject jsonData = jsonDataValue.toObject();
qDebug()<< "jsonData [name]==" << jsonData ["name"].toString();
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)