rapidjson 打包过程插入对象

开发过程中遇到一种情况,在打包过程中插入一个字符串(里面是json对象),
官方文档 没看到相关例子,不知道是不是自己粗心没找到。方法RawValue其实是一个通用打包方法,一般情况我们都调用的是String()、Int()等方法,解决了使用rapidjson的最后一个屏障

例如:

cpp 复制代码
rapidjson::StringBuffer strBuf;
rapidjson::Writer<rapidjson::StringBuffer>writer(strBuf);
writer.StartObject();

writer.Key("Data");
writer.StartObject();

//打包过程中插入一个对象
char c[512] = "{\"a\":\"1111\",\"b\":2,\"c\":true,\"d\":[1,2,3]}";
writer.Key("userdata");
writer.RawValue(c, strlen(c), rapidjson::kObjectType);

writer.Key("Language");
writer.String("zh");
writer.Key("Metrology");
writer.Int(1);
writer.Key("Beep");
writer.Bool(true);
	
// 快捷键车型信息保存
writer.Key("F01");
writer.StartObject();
writer.Key("Name");
writer.String("F01");
writer.Key("VehicleId");
writer.String("F01.VehicleId");
writer.Key("Path");
writer.String("F01.Path");
writer.EndObject();
	
writer.Key("Items");
writer.StartArray();
for (map<string, string>::iterator it = mArr.begin(); it != mArr.end(); ++it)
{
	if (strlen(it->second) <= 0)
		continue;

	writer.StartObject();
	writer.Key("Label");
	writer.String(it->first.c_str());
	writer.Key("Value");
	writer.String(it->second.c_str());
	writer.EndObject();
}
writer.EndArray();

writer.EndObject();
writer.EndObject();

return strBuf.GetString();
相关推荐
Giant1001 分钟前
如果要做优化,CSS提高性能的方法有哪些?
前端
dllxhcjla3 分钟前
html初学
前端·javascript·html
只会写Bug的程序员4 分钟前
【职业方向】2026小目标,从web开发转型web3开发【一】
前端·web3
LBuffer6 分钟前
破解入门学习笔记题二十五
服务器·前端·microsoft
xier_ran7 分钟前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
kuxku8 分钟前
使用 SSE 与 Streamdown 实现 Markdown 流式渲染
前端·javascript·node.js
Sherry00720 分钟前
【译】🔥如何居中一个 Div?看这篇就够了
前端·css·面试
前端小咸鱼一条21 分钟前
18. React的受控和非受控组件
前端·react.js·前端框架
一枚前端小能手26 分钟前
🛠️ Service Worker API深度解析 - 生命周期、缓存与离线实战
前端·javascript
richxu2025100128 分钟前
Linux本地部署deepseek大模型之 6. Windows本地连接远程云服务器中的MySQL常见错误的解决办法
linux·服务器·windows