zoukankan      html  css  js  c++  java
  • JSON传输数组的基本操作

    目标JSON结果如下:

    生成JSON的的过程如下:

    Document document;
        Document::AllocatorType& allocator = document.GetAllocator();
    
        //
        Value root(kObjectType);
    
        Value records(kArrayType);
        for (int i = 0;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>(2);
            param[0]=CV_IMWRITE_JPEG_QUALITY;
            param[1]=95;//default(95) 0-100
    
            imencode(".jpg",faceMat,buff,param);
            char* imgData = new char[buff.size()];
            memset(imgData, 0, buff.size());
            for (int ii=0;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);
  • 相关阅读:
    基于Windows Mobile 5.0的GPS应用程序开发
    iis6应用程序池被自动禁用问题 应用程序池'DefaultAppPool' 被自动禁用
    Axapta物流模块深度历险(八)
    AX的报表服务器(一)
    AX的企业门户(一)
    SQL Server2005 Reporting Services 管理站点
    SQL Server2005 Reporting Services的卸载
    耐心的解决问题
    危险操作符
    慢慢的坚持啊
  • 原文地址:https://www.cnblogs.com/zhehan54/p/9366931.html
Copyright © 2011-2022 走看看