菜鸟笔记
提升您的技术认知

菜鸟教程

rapidjson 构造数组将函数实现放在头文件中RapidJSON解析和生成Json绝对路径和相对路径gcc 优化选项 -O1 -O2 -O3 -Os 优先级Python求一个整数位数的方法python中判断数字位数的几种方法python计算分位数查看hive的版本如何查看hadoop的版本elasticsearch查看所有indexsublime 列模式 列编辑shell遍历目录下所有文件http-parser解析http报文详解supervisor守护工具配置lnmp为已有站点手动更新ssl证书记录java 最长回文、最长回文子串ssh免密码登录为Linux内核开启BBR加速frp服务开机自启x86架构下,页面大小为什么是4K?如何限制对象只能建立在堆上或者栈上进程间通信的方式SyntaxError: Non-ASCII character '\xe5'TCP 连接半关闭问题ucontext 协程库代码分析python中yield的用法详解为PHP7.0安装redis扩展ucontext 简单协程库ImportError: No module named cv2的完美解决方法HashMap扩容全过程关于HashMap常见面试考点(底层原理+扩容机制)DOS批处理中的字符串处理详解(字符串截取)Linux下如何查找.sh后缀的文件core文件出现“is not a core dump: File format not recognized”的原因和解决方法(看/proc/pid/limits)记一次docker问题定位(perf,iostat等性能分析)Protocol Buffers 2.5.0 安装python 使用thrift序列化与反序列化对象PHP的base64_decode乱码linux中后台运行 java -jarLinux常用命令--文件搜索Linux常用命令--文件基础操作与文件权限变更Linux常用命令--软件包管理之(RPM包管理)Linux常用命令--文件编辑与查看Linux常用命令--文件压缩与挂载Linux常用命令--系统管理Linux常用命令--系统管理之(用户管理、用户组管理)Linux常用命令--系统管理之(进程管理、定时任务、系统监控)Linux常用命令--软件包管理之(服务管理)Linux常用命令--软件包管理之(yum与源码包安装)Linux初窥:Linux下SSH免密码登录配置如何查看CentOS7的版本信息Linux环境变量文件介绍Linux下Tomcat的安装与配置CentOS解决-bash: vim: command not found10 个提高效率的 Linux 命令别名shell比较浮点数和整数crontab 30秒执行一次Python中字典合并的四种方法shell查看CPU 硬盘 内存使用率

RapidJSON解析和生成Json

阅读 : 463

RapidJSON学习

  • RapidJSON获取json数据键值对的key和value
std::string output = "";

output += "Deck: \n";
// deck
for (unsigned j = 0; j < (document["data"])["deck"].Size(); j++) {
  
	// deck内遍历
	for (rapidjson::Value::ConstMemberIterator iter = ((document["data"])[i]["deck"])[j].MemberBegin(); iter != ((document["data"])["deck"])[j].MemberEnd(); iter++) {
  
		rapidjson::Value jKey;
		rapidjson::Value jValue;
		Document::AllocatorType allocator;
		jKey.CopyFrom(iter->name, allocator);
		jValue.CopyFrom(iter->value, allocator);
		if (jKey.IsString()) {
  
			std::string name = jKey.GetString();
			std::string value = cocos2d::Value(jValue.GetInt()).asString();
			output += "    " +  name + ':' + value + '\n';
		}
	}
	output += "    ---\n";
}
output += "---\n";

  • RapidJSON创建Json
    场景:用户输入用户名和密码,然后将信息组合生成json
	rapidjson::Document document;
	document.SetObject();
	rapidjson::Document::AllocatorType& allocator = document.GetAllocator();
	
	//用户名
	rapidjson::Value username(StringRef(usernameInput->getString().c_str()));
	document.AddMember("username", username, allocator);
	
	//密码
	rapidjson::Value password(StringRef(passwordInput->getString().c_str()));
	document.AddMember("password", password, allocator);

	StringBuffer buffer;
	rapidjson::Writer<StringBuffer> writer(buffer);
	document.Accept(writer);
	//log("%s\n", buffer.GetString());