diff --git a/src/blackmisc/json.h b/src/blackmisc/json.h index a12a71f2b..197a42043 100644 --- a/src/blackmisc/json.h +++ b/src/blackmisc/json.h @@ -396,6 +396,24 @@ namespace BlackMisc convertFromJson(BlackMisc::Json::jsonObjectFromString(jsonString)); } + //! Get object from QJsonObject + template + static DerivedObj fromJson(const QJsonObject &json) + { + DerivedObj obj; + obj.convertFromJson(json); + return obj; + } + + //! Get object from JSON string + template + static DerivedObj fromJson(const QString &jsonString) + { + DerivedObj obj; + obj.convertFromJson(BlackMisc::Json::jsonObjectFromString(jsonString)); + return obj; + } + private: const Derived *derived() const { return static_cast(this); } Derived *derived() { return static_cast(this); }