• 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();
    }
    

      

  • 相关阅读:
    集合类型操作符
    ffmpeg 转换VC工具 V1.1.2 支持android.mk工程文件生成
    avplayer VS2008编译
    cocosBuiler使用简介&心得
    ffmpeg 转换VC工具 V1.1.2 支持android.mk工程文件生成
    ffmpeg优化
    avplayer VS2008编译
    VS2008+WDK 文件过滤驱动程序 开发环境配置
    cocosBuiler使用简介&心得
    ffmpeg优化
  • 原文地址:https://www.cnblogs.com/pinking/p/7931744.html
Copyright © 2020-2023  润新知