gdb 檢視 jsoncpp物件

ho966發表於2024-08-14

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).
};

相關文章