当json对象里有多个子对象,想要取出其子对象时可用函数getMemberNames(),其返回值是Json::Value::Members类型,其实是一个标准的std::vector<string>类型:
vector里的每一个元素就是子对象名称。如有下列文件内容:
想要取出"role" 里的每一项,使用方法如:
int main()
{
std::string fileName = "userAccount";
Json::Value config;
loadConfig(fileName, config);
Json::Value roleInfo;
Json::Value::Members members = config["role"].getMemberNames();
for(auto ite = members.begin(); ite != members.end(); ite++)
{
Json::Value account = config["role"][*ite];
account["roleId"] = *ite;
std::cout << *ite << std::endl; //对象成员名
roleInfo.append(account); //把取出的对象放到数组里
}
std::cout << "all role info: " << roleInfo << std::endl;
return 0;
}
运行结果: