• prettyJson V7.1 使用


    头文件

    #include "document.h"  
    #include "prettywriter.h"  
    #include "filereadstream.h"  
    #include "filewritestream.h"  
    #include "stringbuffer.h"

    using namespace rapidjson;

    输出json

    std::map<int, POINT> shootMap ;
    string strJson;
    std::vector<int> everyLoopCount;
     string str="abc"int  i=0;
    
    
     Document document;
     Document::AllocatorType& allocator = document.GetAllocator();
     Value root(kObjectType);
     Value fixedPoint(kArrayType);//map读取
     Value everyLoop(kArrayType);//vector读取
    
      string strX;
      string strY;
      string strloop;
    //map读取,里面存着POINT类型
    for (auto iter = shootMap.begin(); iter != shootMap.end(); ++iter)
        {
            Value arrayBody(kArrayType);
            strX = to_string(iter->second.x);
            item.SetString(strX.c_str(), strX.size(), allocator);
            arrayBody.PushBack(item, allocator);
            strY = to_string(iter->second.y);  
            item.SetString(strY.c_str(), strY.size(), allocator);
            arrayBody.PushBack(item, allocator);
            fixedPoint.PushBack(arrayBody, allocator);
        }
    
    //vector 读取,里面存着int类型
     for (auto it = everyLoopCount.begin(); it != everyLoopCount.end(); ++it)
        {
            Value arrayBody(kArrayType);
            strloop = to_string(*it);
            item.SetString(strloop.c_str(), strloop.size(), allocator);
            arrayBody.PushBack(item, allocator);
            everyLoop.PushBack(arrayBody, allocator);
        }
       //map输出
       root.AddMember("map", fixedPoint, allocator);
        
      //字符串输出
      root.AddMember("字符串", StringRef(str.c_str()), allocator);
    
      //vector
      root.AddMember("vector", everyLoop, allocator);
        
    
      //int
      root.AddMember("int", i, allocator);
    
       StringBuffer buffer;
        Writer<StringBuffer> writer(buffer);
        root.Accept(writer);
        strJson = buffer.GetString();
    
       

    读取json

      Document doc;
        doc.Parse<0>(strJson.c_str());

    Value & map= doc["map"];
    Value & str= doc["字符串"];

    Value & vector= doc["vector"];

    Value & int= doc["int"];

    //输出到map里

    POINT targetPoint;

    string temp;

    int nKey = 0;

    if (map.IsArray())
    {
      for (size_t i = 0; i < map.Size(); ++i)
    {
      Value & v = map[i];
      if (v.IsArray())
    {
        Value& col = v[0];
        temp = col.GetString();
        targetPoint.x = atoi(temp.c_str());

        col = v[1];
        temp = col.GetString();
        targetPoint.y = atoi(temp.c_str());
    }
      rMap.insert(map<int, POINT>::value_type(nKey, targetPoint));
      ++nKey;
    }
    }
    temp.empty();

    //vector

    if (scoreValue.IsArray())
    {
      for (size_t i = 0; i < scoreValue.Size(); ++i)
      {
        Value & v = scoreValue[i];
        if (v.IsArray())
        {
        Value& col = v[0];
        temp = col.GetString();
        scores = atof(temp.c_str());
      }
      score->push_back(scores);
      }
    }

    string str=字符串.GetString();

    int i=i.Getint();

  • 相关阅读:
    Python3 MySQL 数据库连接
    python3中线程池
    python中paramiko模块和mysql数据库的操作
    linux定制的补充
    linux 定制
    利用BIND搭建自己的私有根及授权域
    Python3下的paramiko模块
    mysql在linux下的安装与优化
    Linux下Nagios的安装与配置
    CentOS 6.7中安装python3.5
  • 原文地址:https://www.cnblogs.com/ye-ming/p/8797833.html
Copyright © 2020-2023  润新知