Value构造

Value对象最好先声明后初始化,如果声明直接初始化可能出错。

  1. rapidjson::Value a;
  2. a = val[i];

Value传参

Value传参,最好显式使用右值,如std::move,或使用引用,否则可能出错。

Value移动

document的GetObject是移动的,里面的对象会被销毁。 
Value默认都是移动的,传参都需要右值。 
拷贝的话:

  1. rapidjson::Document::AllocatorType& allot = config_document_.GetAllocator();
  2. rapidjson::Value cp(rapidjson_value_, allot);

Array和Object的迭代器

  1. Array的迭代器是ValueIterator;
  2. Object的迭代器是MemberIterator;

附上一段dfs代码:

void DfsDocument(rapidjson::Value val) {
// cout << val.GetType() << endl;
if (!val.GetType()) return;
switch (val.GetType()) {
case rapidjson::kNumberType:
cout << val.GetInt() << endl;
break;
case rapidjson::kStringType:
cout << val.GetString() << endl;
break;
case rapidjson::kArrayType:
for (rapidjson::Value::ValueIterator itr = val.GetArray().begin();
itr != val.GetArray().end(); ++itr) {
rapidjson::Value a;
a = *itr;
DfsDocument(std::move(a));
}
break;
case rapidjson::kObjectType:
for (rapidjson::Value::MemberIterator itr = val.GetObject().begin();
itr != val.GetObject().end(); ++itr) {
cout << itr->name.GetString() << endl;
rapidjson::Value a;
a = itr->value;
DfsDocument(std::move(a));
}
default:
break;
}
return;
}

详细使用请参考作者Milo Yip的文档。

 

最新文章

  1. java中的反射简单实例
  2. mysql-1
  3. OpenCV 第二课 认识图像的存储结构
  4. Andoird Studio 错误: 非法字符: &#39;\ufeff&#39; 解决方案。
  5. 使用Pager-taglib进行分页
  6. Linux时间子系统之(六):POSIX timer
  7. Java学习笔记43(Spring的jdbc模板)
  8. 微信小程序星星评价
  9. centos7升级内核版本
  10. Core Java 面经
  11. Compute Shader
  12. 【源码阅读】VS调试mimikatz-改造法国神器mimikatz执行就获取明文密码
  13. es5 温故而知新 创建私有成员、私有变量、特权变量的方法
  14. s:select 标签中list存放map对象的使用
  15. BPNN
  16. SignalR 循序渐进(四) Hub的生命周期以及IoC
  17. aliyun ECS da shang chuang 安装小结
  18. 转:: 刺鸟:用python来开发webgame服务端(2)
  19. ueditor UEditor的setContent的时候报错
  20. 【转】Unity3D 射线Ray实现点击拾取

热门文章

  1. 用几分钟了解R语言入门知识
  2. 小甲鱼-003 python插曲值变量和字符串
  3. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(五)技能属性集(AttributeSet)
  4. [UE4]动画序列面板
  5. 初步认识AutoMapper
  6. C#中char空值的几种表示方式
  7. nginx配置详解(转)
  8. 经典算法 BFPRT算法详解
  9. 国内各类“壳子”浏览器,userAgent 一览
  10. OpenACC 《大规模并行处理器编程实战》教材讲解