rapidjson write & read

来源:互联网 发布:按键精灵qq群发源码 编辑:程序博客网 时间:2024/05/16 01:47

目标json:

{  "result" : 1,  "data" : {    "friends" : [      {        "Award" : 2,        "friend" : {          "gate" : 0,          "nickName" : "游客111111",          "uuid" : "111111"        }      }    ],    "invited" : true  }}

rapidjson code:

#include "rapidjson.h"#include "stringbuffer.h"#include "writer.h"using namespace rapidjson;    Document doc;    doc.SetObject();    Document::AllocatorType& all = doc.GetAllocator();    doc.AddMember("result",1,all);        Value data;        data.SetObject();            Value friends(kArrayType);            for (int i = 0; i < 1; i++) {                Value friendsData;                friendsData.SetObject();                friendsData.AddMember("Award",2,all);                        Value friendData;                        friendData.SetObject();                        friendData.AddMember("gate",0,all);                        friendData.AddMember("uuid","111111",all);                        friendData.AddMember("nickName","游客111111",all);                friendsData.AddMember("friend",friendData,all);                friends.PushBack(friendsData,all);            }        data.AddMember("friends",friends,all);        data.AddMember("invited",true,all);    doc.AddMember("data",data,all);    rapidjson::StringBuffer buffer;    rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);    doc.Accept(writer);    std::string dataString = buffer.GetString();


解析目标json:


    Document jsonDic;    string str = "目标JSON";    jsonDic.Parse<0>(str);    Value &dataValue= jsonDic["data"];    int isInvited = dataValue["invited"].GetBool();        Value &friendsData = dataValue["friends"];    if (friendsData.IsArray()) {        for (rapidjson::SizeType i = 0; i < friendsData.Size(); i++)        {            Value &friendData = friendsData[i];            int invitedAward = friendData["Award"].GetInt();            Value &friendObject = friendData["friend"];            int tollgate = friendObject["gate"].GetInt();            string uuid = friendObject["uuid"].GetString();            string nickName = friendObject["nickName"].GetString();        }    }


0 0