目录
概念
今天看到大佬去解析Json文件的代码,简直666,特意记录此笔记,方便以后用得到,肯定会用得到。
演示过程及源码
如下面的这个Json代码,这个是调用face++的http接口,回的数据:
{"faces1": [{"face_rectangle": {"width": 173, "top": 56, "left": 221, "height": 173}, "face_token": "74d5ab683973850bd8ae8171bd5e2dc0"}], "faces2": [{"face_rectangle": {"width": 97, "top": 82, "left": 58, "height": 97}, "face_token": "05a3a9d4356840a05aa067759bf36a65"}], "time_used": 706, "thresholds": {"1e-3": 62.327, "1e-5": 73.975, "1e-4": 69.101}, "confidence": 88.364, "image_id2": "cwCS2E2mgKybwHt76JDnlA==", "image_id1": "CTnCybS3mzNADgybps4lwQ==", "request_id": "1550108144,bad5f86c-8b34-4a29-8994-bf68cbef6bce"}
给出一个截图:
Qt里面有个QVariant神器,利用QVariant这个神器去存储数据!!!
源码如下:
#include <QFile>
#include <QDebug>
#include <QTextStream>
#include <QJsonDocument>
#include <QMap>
#include <QByteArray>
#include <QVariant>
int main(int argc, char *argv[])
{
QFile file("E:\\Qt2019\\JsonToMapDemo\\test.txt");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
return -1;
QTextStream in(&file);
QString allData = in.readAll();
QMap<QString, QVariant> map;
QJsonDocument document;
qDebug() << allData.toLatin1();
map = document.fromJson(allData.toLatin1()).toVariant().toMap();
qDebug() << map.value("confidence").toFloat();
file.close();
return 0;
}
这里来看看allData.toLatin1()转换成map后,存储的东西: