jsoncpp是c++使用較多的json庫, gdb除錯時, 不方便檢視json物件的資訊,這裡提供一種方法。
json::value利用map實現樹狀物件,
map的型別為std::maps<Json::Value::CZString, Json::Value>
union ValueHolder {
LargestInt int_;
LargestUInt uint_;
double real_;
bool bool_;
char* string_; // if allocated_, ptr to { unsigned, char[] }.
ObjectValues* map_;
} value_;
json::value物件結構體中, typedef std::map<Json::Value::CZString, Json::Value> ObjectValues, map_就存放下級節點的資料,列印map_就可以檢視下級節點資訊,列印map可以參考
https://www.cnblogs.com/ho966/p/18359095 使用其中pmap檢視stl::map
ValueType type() const; 表示當前節點的型別,有
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).
};