g1g2hardwarechecker/taskinfo.cpp

89 lines
1.6 KiB
C++

#include "taskinfo.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#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<TaskInfo>& 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<TaskInfo> JSTaskInfo::GetInfos(std::string info)
{
std::vector<TaskInfo> 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);
}