Skip to content
Snippets Groups Projects
qtlib_json.h 1 KiB
Newer Older
akiraohgaki's avatar
akiraohgaki committed
/**
akiraohgaki's avatar
akiraohgaki committed
 * qtlib
akiraohgaki's avatar
akiraohgaki committed
 *
 * @author      Akira Ohgaki <akiraohgaki@gmail.com>
 * @copyright   Akira Ohgaki
akiraohgaki's avatar
akiraohgaki committed
 * @license     https://opensource.org/licenses/LGPL-3.0
akiraohgaki's avatar
akiraohgaki committed
 * @link        https://github.com/akiraohgaki/qtlib
akiraohgaki's avatar
akiraohgaki committed
 */

#pragma once

#include <QObject>
#include <QJsonObject>
#include <QJsonArray>

akiraohgaki's avatar
akiraohgaki committed
namespace qtlib {
akiraohgaki's avatar
akiraohgaki committed

class Json : public QObject
{
    Q_OBJECT

public:
akiraohgaki's avatar
akiraohgaki committed
    explicit Json(const QByteArray &json = QByteArray(), QObject *parent = 0);
akiraohgaki's avatar
akiraohgaki committed
    explicit Json(const QJsonObject &object, QObject *parent = 0);
    explicit Json(const QJsonArray &array, QObject *parent = 0);

akiraohgaki's avatar
akiraohgaki committed
    Json(const Json &other, QObject *parent = 0);
akiraohgaki's avatar
akiraohgaki committed
    Json &operator =(const Json &other);

akiraohgaki's avatar
akiraohgaki committed
    QByteArray json() const;
    void setJson(const QByteArray &json);

akiraohgaki's avatar
akiraohgaki committed
    void fromObject(const QJsonObject &object);
    void fromArray(const QJsonArray &array);
akiraohgaki's avatar
akiraohgaki committed
    QByteArray toJson();
    QJsonObject toObject();
    QJsonArray toArray();
akiraohgaki's avatar
akiraohgaki committed
    bool isValid();
    bool isObject();
    bool isArray();
akiraohgaki's avatar
akiraohgaki committed

private:
    QByteArray json_;
};

akiraohgaki's avatar
akiraohgaki committed
} // namespace qtlib