文件格式
{
"attentions": [
{
"meta_key": "sys.ram.s1",
"inference": {
"mean": 15600,
"max": 18000
}
},
{
"meta_key": "sys.gpu.s1",
"inference": {
"mean": 70.0,
"max": 100
}
},
{
"meta_key": "sys.total.cpu.s1",
"inference": {
"mean": 65.0,
"max": 80
}
},
{
"meta_key": "sys.ram.s2",
"inference": {
"mean": 15600,
"max": 18000
}
},
{
"meta_key": "sys.gpu.s2",
"inference": {
"mean": 70.0,
"max": 100
}
},
{
"meta_key": "sys.total.cpu.s2",
"inference": {
"mean": 65.0,
"max": 80
}
},
{
"meta_key": "sys.ram.s3",
"inference": {
"mean": 15600,
"max": 18000
}
},
{
"meta_key": "sys.gpu.s3",
"inference": {
"mean": 70.0,
"max": 100
}
},
{
"meta_key": "sys.total.cpu.s3",
"inference": {
"mean": 65.0,
"max": 80
}
},
{
"meta_key": "sys.ram.s4",
"inference": {
"mean": 15600,
"max": 18000
}
},
{
"meta_key": "sys.gpu.s4",
"inference": {
"mean": 70.0,
"max": 100
}
},
{
"meta_key": "sys.total.cpu.s4",
"inference": {
"mean": 65.0,
"max": 80
}
}
]
}
#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include <QFile>
#include <QDebug>
void MainWindow::readJson()
{
/*解析json文件*/
QFile file("E:/5_Project/3_QT_Code/QJson/test2.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))
{
qDebug()<<tr("解析json文件错误!");
return;
}
QJsonObject jsonObject = document.object();
if(jsonObject.contains(QStringLiteral("attentions")))
{
QJsonValue arrayValue = jsonObject.value(QStringLiteral("attentions"));
if(arrayValue.isArray())
{
QJsonArray array = arrayValue.toArray();
for(int i=0;i<array.size();i++)
{
QJsonValue jsonVal = array.at(i);
QJsonObject jsonObj = jsonVal.toObject();
QString key = jsonObj["meta_key"].toString();
QJsonObject jval=jsonObj["inference"].toObject();
double mean=jval["mean"].toDouble();
double maxVal=jval["max"].toDouble();
qDebug()<<"key:"<<key<<" mean="<<mean<<" maxVal="<<maxVal;
}
}
}
}