diff --git a/src/utility/json.cpp b/src/utility/json.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cbce058ca4917f8c073f5976657984f4ed71b0c0 --- /dev/null +++ b/src/utility/json.cpp @@ -0,0 +1,39 @@ +#include <QJsonDocument> +#include <QJsonObject> +#include <QJsonParseError> + +#include "json.h" + +namespace Utility { + +Json::Json(QObject *parent) : QObject(parent) +{} + +bool Json::isValid(const QString &json) +{ + QJsonParseError jsonError; + QJsonDocument::fromJson(json.toUtf8(), &jsonError); + if (jsonError.error == QJsonParseError::NoError) { + return true; + } + return false; +} + +QJsonObject Json::convertStrToObj(const QString &json) +{ + QJsonObject jsonObj; + QJsonParseError jsonError; + QJsonDocument jsonDoc = QJsonDocument::fromJson(json.toUtf8(), &jsonError); + if (jsonError.error == QJsonParseError::NoError && jsonDoc.isObject()) { + jsonObj = jsonDoc.object(); + } + return jsonObj; +} + +QString Json::convertObjToStr(const QJsonObject &jsonObj) +{ + QJsonDocument jsonDoc(jsonObj); + return QString::fromUtf8(jsonDoc.toJson()); +} + +} // namespace Utility diff --git a/src/utility/json.h b/src/utility/json.h new file mode 100644 index 0000000000000000000000000000000000000000..68f100b58f25af7e48fc63999445976665e4c1d8 --- /dev/null +++ b/src/utility/json.h @@ -0,0 +1,22 @@ +#ifndef UTILITY_JSON_H +#define UTILITY_JSON_H + +#include <QObject> + +namespace Utility { + +class Json : public QObject +{ + Q_OBJECT + +public: + explicit Json(QObject *parent = 0); + + static bool isValid(const QString &json); + static QJsonObject convertStrToObj(const QString &json); + static QString convertObjToStr(const QJsonObject &jsonObj); +}; + +} // namespace Utility + +#endif // UTILITY_JSON_H