json中的值类型共有8种,分别为nullValue, intValue,uintValue, realValue, stringValue,booleanValue, arrayValue, ojbectValue.枚举类型定义如下:
enum ValueType
{
nullValue = 0, ///< 'null' value
intValue, ///< signed integer value
uintValue, ///< unsigned integer value
realValue, ///< double value
stringValue, ///< UTF-8 string value
booleanValue, ///< bool value
arrayValue, ///< array value (ordered list)
objectValue ///< object value (collection of name/value pairs).
};
在获取ojbectValue类型的所有name 时,用Json::Value的成员方法getMemberNames,返回的是类型Members,其实是typedef std::vector<std::string> Members;
具体的代码如下:
Json::Value::Members members = root.getMemberNames();
for (Json::Value::Members::iterator it = members.begin(); it != members.end(); it++)
{
cout << "name:" << *it << " value:" << root[*it] << endl;
}