我一直在尝试用Qt从json文件中读取数据,但无法找到正确的方法。我尝试过很多东西,但是做不到。有人可以帮我解决这个问题吗?
{
"RawData": {
"Sensors": {
"Channel1" : "10",
"Channel2" : "22",
"Channel3" : "3",
"Channel4" : "48",
"Channel5" : "1",
"Channel6" : "8",
"Channel7" : "16",
"Channel8" : "44"
}
}
}
现在我的代码看起来像这样,虽然我用不同的方式尝试了很多东西。
QFile jsonCfg("config.json");
if (!jsonCfg.open(QIODevice::ReadOnly)) {
qWarning("Couldn't open json config file.");
return false;
}
QByteArray saveData = jsonCfg.readAll();
QJsonDocument loadDoc(QJsonDocument::fromJson(saveData));
QJsonObject config = loadDoc.object();
QVariantMap root_map = config.toVariantMap();
QVariantMap raw = root_map["RawData"].toMap();
QVariantMap sensor = raw["Sensors"].toMap();
qDebug() << "channel 1" << sensor["Channel1"].toDouble();
答案 0 :(得分:0)
你可以使用QJsonDocument和QJsonObject,就像:
QJsonParseError jsonErr;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonStr,&jsonErr);
if(jsonErr.error == QJsonParseError::NoError)
{
QJsonObject myJsonObject = jsonDoc.object();
if(myJsonObject["RawData"].isObject())
{
//do somethine your want;
}
}