qt5中提供了很方便的用於解析json資料的類,主要包括qjsonvalue,qjsonarray,qjsonobject,qjsondocument等。使用這幾個類能夠很輕易在c++端建立和處理json格式的資料,或對json資料進行序列化及反序列化等。
qjsonvalue類是用於儲存所有型別的json資料,它將json資料歸為下列6種基本型別:
bool qjsonvalue::bool
double qjsonvalue::double
string qjsonvalue::string
array qjsonvalue::array
object qjsonvalue::object
null qjsonvalue::null
因此qjsonvalue可以儲存上述這6種型別的json資料,並可以轉換對應的c++類。如下示例
qjsonvalue qjsnval;
if(qjsnval.isbool())else if(qjsnval.isdouble())else if(qjsnval.isstring())else if(qjsnval.isobject())else if(qjsnval.isarray())else if(qjsnval.isnull())else if(qjsnval.isundefined())
qjsonobject類是用來解析json物件值的,其主要常用的方法有insert, value, take等
qjsonobject qjsonobj;
qjsonobj.insert("key1", "value1"); //insert方法的第二個入參是qjsonvalue型別,因此可以傳入各種基本型別的json資料
qjsonobj.insert("key2", 3.14);
qjsonobj.insert("key3", true);
//此時qjsonobj的內容是:
qstring value1 = qjsonobj.value("key1").tostring(); //value1值為"value1"
//qjsonobjec的value方法是取出json物件的某個屬性值,但不刪除該屬性,因此此時
//qjsonobj的內容仍然是:
bool value3 = qjsonobj.take("key3").tobool(); //value3值為true
//qjsonobjec的take方法是取出json物件的某個屬性值,並刪除該屬性,因此此時
//qjsonobj的內容變成了:
json巢狀json如何解析
json格式如下 使用google的gson包處理,非常簡單 發現這個問題其實挺簡單的。我的解決方法如下 先定義三個類分別為 biz,bizs 和 data,用於對應你的 json 串中的從裡到外的三個部分。biz 類中包含 id,name,add 三個屬性,bizs 中包含壹個 biz 型別的陣列...
如何解析JSON物件
情景 解析同盾返回引數 獲取同盾返回物件 jsonobject jsonobject tdservice.invokequeryreport map2 解析json物件中key為result的物件引數 jsonobject jsonobject a jsonobject.getjsonobject ...
前端開發中如何解析json資料(三)
資料三 china america spain 上述 也是json資料 的一種表現形式,而且該形式也是很常見的,最外層是乙個物件,物件中鍵對應的值是乙個陣列。陣列裡面又包含json物件。在網路請求這裡,這樣的 json 資料也是很常見的,下面我們就來看一下如何 解析這樣的json資料。首先是通過fo...