先了解下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值