JSON传输数组的基本操作

时间:2023-03-09 05:28:43
JSON传输数组的基本操作

目标JSON结果如下:

JSON传输数组的基本操作

生成JSON的的过程如下:

Document document;
Document::AllocatorType& allocator = document.GetAllocator(); //根
Value root(kObjectType); Value records(kArrayType);
for (int i = ;i< signlogList.size();i++)
{
Value record_info(kObjectType);
record_info.SetObject(); record_info.AddMember("id", signlogList[i].face_id, allocator); Value snapshot_time(kStringType);
snapshot_time.SetString(signlogList[i].snapshot_time.c_str(), allocator); record_info.AddMember("recoTime", snapshot_time, allocator); Mat faceMat = imread(signlogList[i].snapshot_url); vector<uchar> buff;//buffer for coding
vector<int> param = vector<int>();
param[]=CV_IMWRITE_JPEG_QUALITY;
param[]=;//default(95) 0-100 imencode(".jpg",faceMat,buff,param);
char* imgData = new char[buff.size()];
memset(imgData, , buff.size());
for (int ii=;ii < buff.size();ii++)
{
imgData[ii] = buff[ii];
} std::string imgBase64="";
CBase64::Encode((uchar*)imgData, buff.size(),imgBase64); delete[] imgData;
imgData = NULL; Value pic(kStringType); pic.SetString(imgBase64.c_str(), allocator); record_info.AddMember("pic", pic, allocator); record_info.AddMember("sim", signlogList[i].score, allocator); records.PushBack(record_info, allocator);
} root.AddMember("records", records, allocator); string strTime = get_current_datetime(); Value sendTime(kStringType);
sendTime.SetString(strTime.c_str(), allocator); root.AddMember("sendTime", sendTime, allocator); string strMD5 = Common::Utility::generate_md5(strTime+config_info_.tianyu_order.key); Value sign(kStringType);
sign.SetString(strMD5.c_str(), allocator); root.AddMember("sign", sign, allocator);