QT JSONファイルを読み込み解析
1907 ワード
(1)JSONファイル(config.json)
(2)解析ファイル
{
"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();