JsonCpp库遍历

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());

}

}

}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值