89 lines
1.6 KiB
C++
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);
|
||
|
}
|
||
|
|