Qt Json

本文详细介绍了在Qt框架下如何使用QJsonDocument、QJsonObject、QJsonArray等类进行JSON数据的解析、创建和序列化,包括读取JSON文件、创建复杂的JSON对象以及将JSON数据保存到文件等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 定义一个抽象接口类

#ifndef JSONBASE_H
#define JSONBASE_H

#include<QJsonObject>
class IJsonSerialize
{
   

public:
    IJsonSerialize() = default;
    virtual void read( QJsonObject &json) = 0;
    virtual void write( QJsonObject &json) = 0;
};


#endif // JSONBASE_H
// 要进行序列化的类,都继承于同样的接口
// 对于复杂字段都要继承并实现其read 和write

#ifndef CAMSETTINGS_H
#define CAMSETTINGS_H

#include<QObject>
#include<JsonBase.h>
#include<QString>


enum ActionType{
   Auto,Manual};
enum PixelFormat{
   JPEG,PNG,RAW};


class Exposure:public IJsonSerialize
{
   
   Q_GADGET;
public:
    Exposure() = default;

    void read( QJsonObject &json) override;
    void write( QJsonObject &json) override;


    ActionType Mode()const;
    void setMode(const ActionType type);

    int ISP() const;
    void setISP(const int i);

    int Time() const;
    void setTime(const int i);

private:
    ActionType  _mode;
    int         _isp;
    int         _time;
};


class CamSettings:public IJsonSerialize
{
   
    Q_GADGET;

public:
    CamSettings() =default;


    void read( QJsonObject &json) override;
    void write( QJsonObject &json) override;

    Exposure getExposure() const;
    void setExposure(cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值