Qt工作笔记-使用toVariant().toMap()分割Json文件(666解析法)

583 篇文章 127 订阅
388 篇文章 20 订阅

目录

 

 

概念

演示过程及源码


 

概念

今天看到大佬去解析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后,存储的东西:

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值