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

      

  • 相关阅读:
    keras使用AutoEncoder对mnist数据降维
    maven插件生成可执行jar包
    python基于opencv实现人脸定位
    使用Jieba提取文章的关键词
    汉语词性对照表
    SQL优化
    keras基于卷积网络手写数字识别
    统计学习
    log4j和slf4j的区别
    log4j配置详解(非常详细)
  • 原文地址:https://www.cnblogs.com/pinking/p/7931744.html
Copyright © 2011-2022 走看看