#include "taskinfo.h" #include #include #include #include #define TITLE "Title" #define INFO "Info" #define RESULT "Result" #define DATETIME "DateTime" #define TESTED "Tested" #define ID "ID" #define BYHUMAN "HumanAdjust" JSTaskInfo::JSTaskInfo() { } JSTaskInfo::~JSTaskInfo() { } std::string JSTaskInfo::GetInfoDump(TaskInfo& info) { json j; std::ifstream i("info.json"); i>>j; return j.dump(); } std::string JSTaskInfo::GetInfosDump(std::vector& info) { std::string content; json js = json::array(); for (size_t i = 0; i < info.size(); i++) { json j; struct2json(info[i], j); js.push_back(j); } return js.dump(); } std::vector JSTaskInfo::GetInfos(std::string info) { std::vector strut_infos; if(info.length()==0) return strut_infos; std::ifstream i(info); json j; i >> j; i.close(); int siz = j.size(); for (json::iterator it = j.begin(); it != j.end(); ++it) { auto tmv = it.value(); TaskInfo t_info; json2struct(t_info, tmv); strut_infos.push_back(t_info); } return strut_infos; } void JSTaskInfo::struct2json(TaskInfo& info, json& j) { j[TITLE] = info.title; j[INFO] = info.info; j[RESULT] = info.result; j[DATETIME] = info.datetime; j[TESTED] = info.tested; j[ID] = info.id; j[BYHUMAN] = info.human_ajust; } void JSTaskInfo::json2struct(TaskInfo& info, json& j) { j[TITLE].get_to(info.title); j[INFO].get_to(info.info); j[RESULT].get_to(info.result); j[DATETIME].get_to(info.datetime); j[TESTED].get_to(info.tested); j[ID].get_to(info.id); j[BYHUMAN].get_to(info.human_ajust); }