#include "DataParsing.h" #include DataParsing::DataParsing(QObject *parent) : QObject(parent) { } DataParsing::~DataParsing() { } void DataParsing::SetChannelSetting(const QString &str) { QByteArray bytes = str.toLatin1(); QJsonParseError jsonError; QJsonDocument docunment = QJsonDocument::fromJson(bytes,&jsonError); if (!docunment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // qDebug() << "文件解析成功!"; if(docunment.isObject()) //判断第一级对象是否存在 { QJsonObject objec = docunment.object(); if(objec.contains("groups")) { QJsonValue arrays_value = objec.take("groups"); if(arrays_value.isArray()) //判断它是不是json组 { QJsonArray array = arrays_value.toArray(); int nsize = array.size(); for(int i = 0; i< nsize; ++i)//groups { GroupData groupdata; groupdata.ChannelType = array.at(i).toObject().value("ChannelType").toString(); groupdata.Channelid = array.at(i).toObject().value("name").toString(); if(array.at(i).toObject().value("channels").isArray()) { QJsonArray channelArray = array.at(i).toObject().value("channels").toArray(); for(int i = 0;i < channelArray.size(); i++)//channels { //groupdata.mChannelData.clear(); QString dataType = channelArray.at(i).toObject().value("name").toString(); if(channelArray.at(i).toObject().value("data").isArray()) { QVector vec; QJsonArray dataArray = channelArray.at(i).toObject().value("data").toArray(); for(int i = 0; i < dataArray.size(); i++) { QJsonValue value = dataArray.at(i); float t = value.toVariant().toFloat(); vec.push_back(t); // global::m_featureData.push_back(t); } groupdata.mapNametoData[dataType] = vec; } } qDebug()<<"::Dealdat::SetChannelSetting() groupdata.mapNametoData.size()"< &DataParsing::getFeatureData() { if(m_groupdata.size() == 0) { qDebug() << "解析失败"; } else { qDebug() << "解析成功"; } return m_groupdata; }