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值

 

 

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