zoukankan      html  css  js  c++  java
  • Qt中使用Json

    Qt中使用Json需要一下几个类:

    QJsonValue            代表了json格式中的一个值

    QJsonObject          代表了json格式的一个对象

    QJsonArray            代表了json格式中的数组

    QJsonDocument    用来读写json文件

    QJsonParseError   用来表示json分析过程的错误

    其中QJsonValue支持6中基本的数据类型:

    下面例子表示了json的创建、读取、序列化和反序列化的过程。

    其中使用QJsonDocument  可以用来序列化和反序列化的过程,进而实现文件读写、socket的读写。

    序列化json的函数:

    QByteArray toBinaryData()   

    QByteArray toJson(JsonFormat format = Indented)

    反序列化:

    QJsonDocument fromBinaryData(const QByteArray &data, DataValidation validation = Validate)  

    QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = Q_NULLPTR)  

    QJsonDocument fromRawData(const char *data, int size, DataValidation validation = Validate) 

    QJsonDocument fromVariant(const QVariant &variant)

    #include <QCoreApplication>
    #include <QDebug>
    #include <QJsonObject>
    #include <QFile>
    #include <QJsonDocument>
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QJsonObject obj;
        obj.insert("name", "lily");
        obj.insert("age", 23);
        QJsonObject addr;
        addr.insert("city", "guangzhou");
        addr.insert("province", "guangdong");
        obj.insert("addr", addr);
        qDebug() << obj<<endl;
    
        qDebug()<<obj.value("name").toString()<<endl;
    
        //序列化
        QJsonDocument jsonDoc(obj);
        QByteArray ba = jsonDoc.toJson();
    
        //反序列化
        QJsonParseError e;
        QJsonDocument jsonDocNew = QJsonDocument::fromJson(ba, &e);
    
        if(e.error == QJsonParseError::NoError && !jsonDocNew.isNull())
        {
            QJsonObject getObj = jsonDocNew.object();
            qDebug() << getObj<<endl;
        }
    
    
        return a.exec();
    }
    

      

  • 相关阅读:
    pandas
    使用Selenium模拟浏览器抓取淘宝商品美食信息
    Pycharm安装第三方库
    shift 函数
    mysql 基础(一)
    mysql基础(三)
    Python Programming for Finance
    进程线程
    股票上市代码及上市时间
    SQLyog连接数据库报错plugin caching_sha2_password could not be loaded
  • 原文地址:https://www.cnblogs.com/pinking/p/7931744.html
Copyright © 2011-2022 走看看