bool TestMessageExchange::fromJson(const Variant& json) { if (json.isNull()) { printf("Not a valid JSON\n"); return false; } if (!json.isArray()) { printf("Invalid format of the message exchange\n"); return false; } for (ArrayIter it(json.toArray()); it; ++it) { if (!it.first().isInteger()) { printf("Invalid format of the message exchange\n"); return false; } int message_key = it.first().toInt32(); TestMessage message; if (!message.fromJson(it.second())) { printf("Invalid message #%d\n", message_key); return false; } m_messages.push_back(message); } return true; }