• QT解析和组装json


    json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单

    1、什么是json?

    A:json就是个<key,value>字符串

    ①一个json对象

    {"name":"xupeidong","age":"18"}
    

    ②一个json数组里面嵌套json对象

    [
    {"price": "1", "name": "1", "id": "1"}, 
    {"price": "2", "name": "2", "id": "2"}, 
    {"price": "3", "name": "3", "id": "3"}
    ]

    2、QT里面如何使用json

    #include <QJsonDocument>   //解析类,用于将json转换为QByteArrar,或从QByteArray解析出json
    #include <QJsonArray>   // 封装json数组:["1","2","3"]
    #include <QJsonObject>  // 封装json对象:{"name": "111","pass": 222}
    #include <QJsonParseError> //错误类

    ①json对象

    组装:

    QJsonObject json;
    json.insert("name", "111");
    json.insert("pass", 222);
    QJsonDocument doc;
    doc.setObject(json);
    QByteArray byte = document.toJson(QJsonDocument::Compact);
    

    解析:

    QJsonParseError error;
    QJsonDocument doc = QJsonDocument::fromJson(byte, &error); 
    if(error.error == QJsonParseError::NoError) 
    {  
        if(doc.isObject())  
        {  
            QJsonObject obj = doc.object(); 
            if(obj.contains("name"))  
        {
           QJsonValue value = obj.take("name");
           qDebug() << value.toString();
        }
        }
    }

    ②json数组

    组装:

    格式:"["000","111"]"
    QJsonArray json;
    json.insert(0, "000");
    json.insert(1, "111");
    QJsonDocument doc;
    doc.setArray(json);
    QByteArray byte = doc.toJson(QJsonDocument::Compact);
    还可以插入json对象:
    格式:"[{"0":"000"},{"1":"111"}]"
    QJsonArray json;
    QJsonObject obj;
    obj.insert("0","000");
    json.insert(0, obj);
    QJsonObject obj1;
    obj1.insert("1","111");
    json.insert(1, obj1);
    QJsonDocument doc;
    doc.setArray(json);
    QByteArray byte = doc.toJson(QJsonDocument::Compact);

    解析:

    QJsonParseError error;
    QJsonDocument doc = QJsonDocument::fromJson(byte, &error); 
    if(error.error == QJsonParseError::NoError) 
    {  
        if(doc.isArray())  
        {  
            QJsonArray array = doc.array(); 
            for(int i=0; i<array.size();i++)
            {
                QJsonValue value = array.at(i);
            }
        }
    }
  • 相关阅读:
    对网页进行抓取时,经常需要判断网页是否可以正常访问,这里我们就可以使用 getcode() 函数获取网页状态码,返回 200 说明网页正常,返回 404 说明网页不存在:
    cvtColor()
    threshold()
    MongoDB 使用数据库对象来创建集合
    定义一个损失函数和优化器 让我们使用分类交叉熵CrossEntropy 作损失函数,动量SGD做优化器。
    2022年8月有感而发
    2022年7月30日
    2022年8月11日
    2022年8月7日
    2022年8月8日
  • 原文地址:https://www.cnblogs.com/xupeidong/p/9401235.html
Copyright © 2020-2023  润新知