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