RapidJson简单实例

本文介绍了RapidJson的使用,包括从字符串解析、组合字符串、从文件读取和写入文件四个实践案例,详细展示了如何操作JSON数据。

一、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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值