做的jsonde su? chuli
? ? 12,
? ? 12.34,
? ? true,
? ? "tom",
? ? [
? ? ? ? "jack",
? ? ? ? "ace",
? ? ? ? "robin"
? ? ],
? ? {
? ? ? ? "girlfriend" : "lucy",
? ? ? ? "sex" : "woman"
? ? }
]
1.Json基礎(chǔ)知識(shí)
ref:Json,Json以及Json在Qt中的使用 【Qt/C/C++】
開發(fā)環(huán)境ubuntu
sudoapt-getinstalllibjsoncpp-dev
jsoncpp 庫中的類被定義到了一個(gè) Json 命名空間中,建議在使用這個(gè)庫的時(shí)候先聲明這個(gè)命名空間:
usingnamespaceJson;
使用 jsoncpp 庫解析 json 格式的數(shù)據(jù),我們只需要掌握三個(gè)類:
Value 類
這個(gè)類可以看做是一個(gè)包裝器,它可以封裝 Json 支持的所有類型,這樣我們?cè)谔幚頂?shù)據(jù)的時(shí)候就方便多了。
枚舉類型 說明 翻譯
nullValue‘null’ value不表示任何數(shù)據(jù),空值
intValuesigned integer value表示有符號(hào)整數(shù)
uintValueunsigned integer value表示無符號(hào)整數(shù)
realValuedouble value表示浮點(diǎn)數(shù)
stringValueUTF-8 string value表示 utf8 格式的字符串
booleanValuebool value表示布爾數(shù)
arrayValue???? array value (ordered list)表示數(shù)組,即 JSON 串中的 []
objectValue? object value (collection of name/value pairs)表示鍵值對(duì),即 JSON 串中的 {}
––
構(gòu)造函數(shù)
Value 類為我們提供了很多構(gòu)造函數(shù),通過構(gòu)造函數(shù)來封裝數(shù)據(jù),最終得到一個(gè)統(tǒng)一的類型。
// 因?yàn)镴son::Value已經(jīng)實(shí)現(xiàn)了各種數(shù)據(jù)類型的構(gòu)造函數(shù)
Value(ValueType type=nullValue);Value(Int value);Value(UInt value);Value(Int64 value);Value(UInt64 value);Value(doublevalue);Value(constchar*value);Value(constchar*begin,constchar*end);Value(bool value);Value(constValue&other);Value(Value&&other);