工作中可能会遇到这种情况:想用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的数组元素删除,结果: