rapidjson write & read
发布时间:2020-12-16 19:11:46 所属栏目:百科 来源:网络整理
导读:目标json: { "result" : 1,"data" : { "friends" : [ { "Award" : 2,"friend" : { "gate" : 0,"nickName" : "游客222221","uuid" : "222221" } } ],"invited" : true }} rapidjson code: #include "rapidjson.h"#include "stringbuffer.h"#include "writer.h
|
目标json: {
"result" : 1,"data" : {
"friends" : [
{
"Award" : 2,"friend" : {
"gate" : 0,"nickName" : "游客222221","uuid" : "222221"
}
}
],"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",all);
friendData.AddMember("uuid","222221",all);
friendData.AddMember("nickName","游客222221",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";
CommonFuncDefine::parseString(str,jsonDic);
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();
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
