假设我有这个Json文件:
[
{
"id": 0
}
]
使用jsoncpp,我可以通过这样做得到一个Json::Value
对象:
Json::Value node = root[0u]["id"];
好的,在代码中的其他地方,我正在获取node
对象,我希望从中获取一些信息。我可以得到它的价值,如下:
int node_value = node.asInt();
但我怎样才能得到它的名字? (即“id”)。它应该是这样的:
string node_name = node.Name(); //or maybe:
string node_name2 = node.Key();
但我找不到类似的东西。救命?如何获取节点名称?
答案 0 :(得分:6)
您可以使用Json :: Value :: getMemberNames()来遍历名称。
Json::Value value;
for (auto const& id : value.getMemberNames()) {
std::cout << id << std::endl;
}
答案 1 :(得分:1)
你需要一个指针吗?这不是一个坏主意,但为up-pointer添加一个字段会破坏二进制兼容性(which is very important)。所以是的,你需要把它包起来。
目前,子值只是Value
,与其他任何一样。