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();
相关推荐
工呈士几秒前
Redux:不可变数据与纯函数的艺术
前端·react.js·面试
心之语歌3 分钟前
ubuntu24.04 搭建 java 环境服务,以及mysql数据库
linux·ubuntu
Tesla_king4 分钟前
用提示词写程序(3),VSCODE+Claude3.5+deepseek开发edge扩展插件V2
前端·edge
仔仔 v1.04 分钟前
解决Vue3+uni-app导航栏高亮自动同步方案
前端·javascript·vue.js
Mintopia9 分钟前
Three.js 形变动画(Morph Target Animation):让 3D 模型跳起变形之舞
前端·javascript·three.js
清幽竹客9 分钟前
vue-11(命名路由和命名视图)
前端·vue.js
sg_knight11 分钟前
Flutter嵌入式开发实战 ——从树莓派到智能家居控制面板,打造工业级交互终端
android·前端·flutter·ios·智能家居·跨平台
陈_杨16 分钟前
鸿蒙5开发宝藏案例分享---切面编程实战揭秘
前端
愚润求学22 分钟前
【Linux】POSIX信号量
linux·运维
喵手23 分钟前
CSS3 渐变、阴影和遮罩的使用
前端·css·css3