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

      

  • 相关阅读:
    React组件的Refs
    Typechecking With PropTypes
    酷炫Jquery收集
    JSTL函数标签库 fn标签学习
    Struts标签 比较时间大小
    Struts2 拦截器 配置IFrame页面跳转
    实体Bean, Entity 注解设置
    Uploadify 参数说明
    Uploadify jsp使用示例
    百度umeditor
  • 原文地址:https://www.cnblogs.com/pinking/p/7931744.html
Copyright © 2011-2022 走看看