JSon文件解析
QString qmlProjectPath = "";
QString surfaceConfigPath = "warningText.json";
// Get QML Project Path Env Variable
const char* qmlProjectPathEnvVar = getenv("HMI_QML_PROJECT_PATH");
// Check QML Project Path Env Variable
if (qmlProjectPathEnvVar != nullptr) {
// Set QML Project Path
qmlProjectPath = qmlProjectPathEnvVar;
surfaceConfigPath = qmlProjectPath + "/warningText.json";
}
qCDebug(CHMI) << "Surface Config Path: " << surfaceConfigPath;
// Check Surface Config
if (!QFile::exists(surfaceConfigPath)) {
qCritical() << " NOT EXIST!";
}
// Init Surface Config File
QFile surfaceConfigFile(surfaceConfigPath);
// Init JSON Content
QString jsonContent;
// Open Surface Config File
if (surfaceConfigFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
// Read JSON Content
jsonContent = surfaceConfigFile.readAll();
// Close Surface Config File
surfaceConfigFile.close();
}
QJsonParseError err_rpt;
QJsonDocument root_Doc = QJsonDocument::fromJson(jsonContent.toUtf8(), &err_rpt);
if(err_rpt.error != QJsonParseError::NoError)
{
qCDebug(HMIADAPTER) << "JSON error";
}
else
{
QJsonObject root_Obj = root_Doc.object();
QJsonValue result_Value = root_Obj.value("results");
if(result_Value.isArray())
{
QJsonObject result_Obj = result_Value.toArray().at(0).toObject();
QJsonObject::iterator it;
for(it = result_Obj.begin(); it != result_Obj.end(); it++)
{
if(it.key() == "")
{
return;
}
QString value = it.value().toString() ;
QString keyString = it.key();
QString valueString = value;
QJsonObject warningKey = result_Obj.value(it.key()).toObject();
QString warningId = warningKey.value("id").toString();
QString warningTitle = warningKey.value("title").toString();
QString warningIcon = warningKey.value("icon").toString();
QString warningText = warningKey.value("text").toString();
QString warningType = warningKey.value("type").toString();
QStringList warningStr;
warningStr.append(warningTitle);
warningStr.append(warningIcon);
warningStr.append(warningText);
warningStr.append(warningType);
warningMap.insert(warningId,warningStr);
}
}
}
json 文件:
"results": [{
"HMIWARNING_TPMS_LOW_PRESSURE": {
"id": "16",
"title": "id_label_warning_tire_pressure",
"icon": "ic_low_tire_pressure",
"text": "id_label_warning_check_front_left_tire_perssure",
"type":"warning"
},
"HMIWARNING_DOORAJAR": {
"id": "4",
"title": "id_label_warning_door_ajar",
"icon": "ic_cluster_alert_car_doors_opened",
"text": "id_label_warning_driver_and_passenger_doors_ajar",
"type":"alert"
}
}]