DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

工作中可能会遇到这种情况:想用json变量的内容但又不需要用全部,想把不需要的项删除掉。此时removeMember派上了用场。removeMember有好几个重载的版本,这里只讲3个常用的版本。

1,removeMember普通成员

 
 
void removeMember()
 
{
 
Json::Value Sample;
 
Sample["channel"] = 10;
 
Sample["format"] = "H264";
 
 
 
Json::Value del; //保存remove 项对应的值
 
Sample.removeMember("channel", &del);
 
printf("Sample = %s\ndel: %s\n", Sample.toStyledString().c_str(), del.toStyledString().c_str());
 
}
 
 

把channel项删除,结果:

2,removeMember 对象

 
 
void removeMember2()
 
{
 
Json::Value Sample;
 
Sample["channel"] = 10;
 
Sample["format"] = "H264";
 
 
 
Json::Value test;
 
test["info"] = Sample;
 
test["time"] = "134530943";
 
 
 
printf("test = %s\n", test.toStyledString().c_str());
 
 
 
Json::Value del; //保存remove 项对应的值
 
test.removeMember("info", &del);
 
printf("after remove = %s\n", test.toStyledString().c_str());
 
}
 
 

把info对象删除,结果:

3,removeMember 数组成员

 
 
void removeMember3()
 
{
 
Json::Value Sample;
 
Sample[0] = "0";
 
Sample[1] = "1";
 
Sample[2] = "2";
 
Sample[3] = "3";
 
printf("Sample = %s\n", Sample.toStyledString().c_str());
 
 
 
Json::Value del;
 
Sample.removeIndex(1, &del);
 
printf("after remove = %s\n", Sample.toStyledString().c_str());
 
}
 

把下标为1的数组元素删除,结果:

posted on 2023-02-23 11:38  DoubleLi  阅读(154)  评论(0)    收藏  举报