一、RapidJson的详细介绍网站:http://miloyip.github.io/rapidjson/zh-cn/
二、
1、RapidJson的实践一:解析一个字符串。
std::string sJson = “{"ack":{"type":"cloud","version":100}}”
rapidjson::Document doc;
doc.Parse(sJson.c_str());
auto &ack = doc["ack"];
auto &type = ack["type"];
std::string sSerType = type.GetString();
auto &version = ack["version"];
int nSerVer = version.GetInt();
3、RapidJson实践二:组合一个字符串。
rapidjson::StringBuffer strBuffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(strBuffer);
writer.StartObject();
writer.String("info");
writer.StartObject();
writer.String("ctype");
writer.String("pc");
writer.String("cver");
writer.Uint(10001);
writer.EndObject();
writer.EndObject();
//sJon=“{"info": {"ctype": "pc","cver": 10001 }}”
sJson = strBuffer.GetString();
4、RapidJson实践三:从文件中读取。
文件中: “{"ack":{"type":"cloud","version":100}}”
FILE *fp;
auto err = fopen_s(&fp, "file.json", "r");
char readBuffer[512];
rapidjson::Document outputDoc;
rapidjson::FileReadStream is(fp, readBuffer, sizeof(readBuffer));
outputDoc.ParseStream(is);
fclose(fp);
auto it = outputDoc.FindMember("ack");
auto typ= it ->value.FindMember("type");
auto vers= it ->value.FindMember("version");
auto type= typ->value.GetInt();
auto versions= vers->value.GetInt();
5、RapidJson实践四:写入到文件中。
rapidjson::Document doc;
doc.SetObject();
auto &allocator = doc.GetAllocator();
doc.AddMember(“key”, “value”, allocator);
FILE *fp;
auto err = fopen_s(&fp, "C:file.json", "w");
char writeBuffer[512];
rapidjson::FileWriteStream os(fp, writeBuffer, sizeof(writeBuffer));
rapidjson::Writer<rapidjson::FileWriteStream> writer(os);
auto e = doc.Accept(writer);
fclose(fp);
本文介绍了RapidJson的使用,包括从字符串解析、组合字符串、从文件读取和写入文件四个实践案例,详细展示了如何操作JSON数据。

198

被折叠的 条评论
为什么被折叠?



