Config* Parser::fromJson(const QByteArray& data) { Config *config = new Config(); QJson::Parser parser; QVariantMap json = parser.parse(data).toMap(); Screen* screen = Parser::screenFromJson(json["screen"].toMap()); QList <QVariant> outputs = json["outputs"].toList(); if (outputs.isEmpty()) { return config; } Output *output; OutputList outputList; Q_FOREACH(const QVariant &value, outputs) { output = Parser::outputFromJson(value); outputList.insert(output->id(), output); }