#include "analysisjson.h" #include #include #include #include #include #include AnalysisJson::AnalysisJson(QString path) { if(QFile::exists(path)){ QFile file(path); if(file.open(QIODevice::OpenModeFlag::ReadOnly)) { m_json = QJsonDocument::fromJson(file.readAll()); file.close(); } } } std::vector AnalysisJson::GetNode() { std::vector nodes; if(!m_json.isObject()) return nodes; auto obj = m_json.object(); auto keys = obj.keys().toVector(); std::sort(keys.begin(),keys.end(),[](QString x,QString y){ return x.toInt() json) { QFileInfo info(path); if(!info.isFile()) return false; if(!info.dir().exists()) QDir().mkdir(info.dir().path()); QJsonDocument doc; QJsonObject obj; int index =1; for(auto json_ : json) { QJsonObject tmp_obj; tmp_obj["title"] = json_.title; tmp_obj["name"] = json_.name; tmp_obj["man"] = json_.is_man; tmp_obj["desc"] = json_.desc; obj[QString::number(index++)] = tmp_obj; } doc.setObject(obj); QFile file(path); if(file.open(QIODevice::OpenModeFlag::WriteOnly)) { file.write(doc.toJson()); file.close(); return true; } return false; } bool AnalysisJson::savejson(QString path, QJsonDocument doc) { QFileInfo info(path); if(!info.isFile()) return false; if(!info.dir().exists()) QDir().mkdir(info.dir().path()); QFile file(path); if(file.open(QIODevice::OpenModeFlag::WriteOnly)) { file.write(doc.toJson()); file.close(); return true; } return false; }