diff --git a/Message.cpp b/Message.cpp index 5847f7cf..fb02d971 100644 --- a/Message.cpp +++ b/Message.cpp @@ -207,23 +207,27 @@ Message::read(QJsonObject const & json) void Message::write(QJsonObject & json) const { - json["type"] = d_->type_; - json["value"] = d_->value_; - json["params"] = QJsonObject::fromVariantMap(d_->params_); + toJsonObject().swap(json); } /******************************************************************************/ // Conversions /******************************************************************************/ +QJsonObject +Message::toJsonObject() const +{ + return { + { "type", d_->type_ }, + { "value", d_->value_ }, + { "params", QJsonObject::fromVariantMap(d_->params_) } + }; +} + QByteArray Message::toJson() const { - QJsonObject object; - - write(object); - - return QJsonDocument(object).toJson(QJsonDocument::Compact); + return QJsonDocument(toJsonObject()).toJson(QJsonDocument::Compact); } QVariantMap diff --git a/Message.hpp b/Message.hpp index 611deed1..7ade8579 100644 --- a/Message.hpp +++ b/Message.hpp @@ -58,6 +58,10 @@ public: private: + // Conversions + + QJsonObject toJsonObject() const; + // Shared data implementation struct Data;