qt中json數據解析

先了解下json數據(網上copy了一段,我自己的理解可能更多是key-value這種結構,可能也是剛接觸這種數據)

1. “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解爲對象(object),記錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。

2. 值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。

下面放上來數據解析代碼:

1.先查到數據中是否存在需要查找的key值,直接取出來對應的value值

QJsonValue MainWindow::get_data_from_jsonobject(QJsonValue data,QString str)
{
    QJsonValue value;
    if(data.isObject())
    {
        QJsonObject jo = data.toObject();
        //是否含有key  rootpath

        if (jo.contains(str))
        {
            //取出key爲rootpath的值
            value = jo.value(str);
            //qDebug()<<value;
        }
    }
    return value;
}

2.取出來值後需要根據相應的類型做一個轉換,QJsonValue格式可轉成下圖幾種,轉成相應的格式取出數據即可。

3.這個方法只會取出最上層的數據,如果是value對應的數據仍然是json格式則仍需要調用上面的結構再次解析纔可獲得最終的value值

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章