我想创建一个jsoncpp对象,其键存储在std :: vector中,我希望有一种方法来创建它。请检查下面的样品。谢谢!
std::vector<std::string> keys = {"a", "b", "c"};
item["a"]["b"]["c"] = 1;
std::vector<std::string> keys = {"a", "b", "c", "d"};
item["a"]["b"]["c"]["d"] = 1;
如何使用向量中的键构造项目对象。谢谢!
答案 0 :(得分:0)
您可以从数组的末尾开始构建JSON到顶部:
std::vector<std::string> keys;
keys.push_back("a");
keys.push_back("b");
keys.push_back("c");
keys.push_back("d");
Json::Value json(Json::objectValue);
json[keys.back()] = 1;
for (int i = keys.size() - 2; i >= 0; i--)
{
Json::Value tmp(Json::objectValue);
tmp[keys[i]] = json;
json = tmp;
}
Json::StyledWriter writer;
std::string text = writer.write(json);