1、初始化

使用一个字符串初始化一个Json::Value代码实例:

int P2PChannelParamDecode(char *inJson)

{

int ret = -1;

Json::Value root;

Json::Features features = Json::Features::strictMode();

Json::Reader reader(features);

bool parsingSuccessful = reader.parse(inJson, root);

if (parsingSuccessful) {

}

return ret;

}

2、循环遍历一个子数组

{

"stream": [

{

"resolution": [

"1920x1080",

"1280x720"

],

"now_resolution": 0,

"frame_rate": {

"totle_rate": 20,

"now_rate": 15

}

},

{

"resolution": [

"720x480"

],

"now_resolution": 0,

"frame_rate": {

"totle_rate": 20,

"now_rate": 15

}

}

]

}

如图上实例,需要将resolution中的值保存到结构体中,而resolution的元素并不固定,需要循环遍历,以下是解决方法。

const Json::Value streamInfo = value["stream"];

if (!streamInfo.isNull()) {

for (unsigned int i = 0; i < streamInfo.size(); i++) {

if (!streamInfo[i]["now_resolution"].isNull()) {

param->streamInfo[i].resolution = streamInfo[i]["now_resolution"].asInt();

}

if (!streamInfo[i]["frame_rate"]["totle_rate"].isNull()) {

param->streamInfo[i].maxFrameRate = streamInfo[i]["frame_rate"]["totle_rate"].asInt();

}

if (!streamInfo[i]["frame_rate"]["now_rate"].isNull()) {

param->streamInfo[i].frameRate = streamInfo[i]["frame_rate"]["now_rate"].asInt();

}

const Json::Value resolutions = streamInfo[i]["resolution"];

if (!resolutions.isNull()) {

for (unsigned int t = 0; t < resolutions.size(); t++) {

strcpy(param->streamInfo[i].resolutions[t], resolutions[t].asCString());

}

}

}

}

JsonCpp库遍历相关推荐

  1. jsoncpp库常用源码解析及使用介绍(二)

    上一节介绍了jsoncpp库的下载及编译方式,中Value类中最基础的一部分功能的源码,包括Value的构造形式.重载"=".">"."< ...

  2. jsoncpp 库的使用方法

    1. 下载jsoncpp, 地址: http://sourceforge.net/projects/jsoncpp/ 2. 编译jsoncpp: jsoncpp文件中提供了vs71的工程文件以及mak ...

  3. 5007.jsoncpp库编程

    jsoncpp 库的使用. //2.测试一下jsoncpp库是否好使.Json::Value root;Json::Value data;root["action"] = &quo ...

  4. C++调用JSON-CPP库实现JSON字符串解析

    1.下载JSON-CPP库https://sourceforge.net/projects/jsoncpp/ 2.解压jsoncpp-src-0.5.0.tar 3.打开VS2010新建一个名为tes ...

  5. C++ JsonCpp库 源码编译及使用(VS2019)

    下载JsonCpp库源码: git clone git@github.com:open-source-parsers/jsoncpp.git 如果打不开可以试试: git clone git@gite ...

  6. 【超详细】C++Json:VS2015的jsoncpp库配置及简单使用

    Json Json是一种数据格式,本来是用于JavaScript的,但是因为他易读,格式明朗等原因,也被用于其他语言中. JsonCpp是一个C++的Json库,利用他我们可以进行数据传输,状态同步. ...

  7. C++ JSON解析之jsoncpp库的使用

    C++ JSON解析之jsoncpp库的使用 1.介绍 轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,层次结构简洁清晰,易于人阅读和编写,易于机器解析和生成. 2.语法规则 ...

  8. C++处理Json串——jsoncpp库

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS2008中使用Jsoncpp解析json的方法做一下记录. Jsoncpp是个 ...

  9. python 文件路径_「按需学Python」 1. Glob库遍历路径/文件

    小前言: 本人Python小白,因为最近想整理下近10几年的老照片,然后就有了写脚本批处理的想法.初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片为拍摄时间_拍摄 ...

最新文章

  1. springMvc的执行流程(源码分析)
  2. unity实用技术:色盲玩家也能享受好的游戏体验
  3. Mybatis源码阅读(三):结果集映射3.2 —— 嵌套映射
  4. jquery radio取值,checkbox取值,select取值,radio选中,
  5. 百度之星大赛启动,聚焦目标检测,总奖池11.2万!
  6. 算法提高 身份证号码升级
  7. mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
  8. 数据库一键自动生成 Java 实体类和数据库文档
  9. Acrobat XI 安*装#教程*和安装%包分*享
  10. 怎么控制人物行走动画与移动
  11. C语言新手入门贪吃蛇的链表实现-控制光标位置,流畅不闪屏
  12. 5G向5.5G演进,变化是什么?
  13. Linux命令大全【实战演练】
  14. serialize()序列化
  15. windows7安装打印机提示“本地打印后台处理程序服务没有运行”
  16. 跨越原理优缺点_jsonp的原理,应用场景,优缺点
  17. 信息学奥赛一本通OJ勘误
  18. Setup Factory9设置图标
  19. JavaScript视频处理库
  20. 基于JAVA的出租车管理系统

热门文章

  1. 什么是MOS管驱动电路,如何理解MOS管驱动电路原理?
  2. 忘了Linux服务器密码怎么办
  3. 用unity做的简单小游戏------“小球酷跑“
  4. 绝缘栅型n沟道场管_N沟道增强型绝缘栅场效应管的工作原理
  5. android apk编译打包过程
  6. Linux结构体变量报错,C语言中的结构体
  7. win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法
  8. 余世维成功经理人讲座
  9. JavaScript增加和删除DOM节点
  10. 消失的“金九银十” 互联网的下一个五年在哪里?