diff options
-rw-r--r-- | src/corelib/json/qjsondocument.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/corelib/json/qjsondocument.cpp b/src/corelib/json/qjsondocument.cpp index 86fd63ead4..630f61a1b0 100644 --- a/src/corelib/json/qjsondocument.cpp +++ b/src/corelib/json/qjsondocument.cpp @@ -268,14 +268,21 @@ QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidati QJsonDocument QJsonDocument::fromVariant(const QVariant &variant) { QJsonDocument doc; - if (variant.type() == QVariant::Map) { + switch (variant.type()) { + case QVariant::Map: doc.setObject(QJsonObject::fromVariantMap(variant.toMap())); - } else if (variant.type() == QVariant::Hash) { + break; + case QVariant::Hash: doc.setObject(QJsonObject::fromVariantHash(variant.toHash())); - } else if (variant.type() == QVariant::List) { + break; + case QVariant::List: doc.setArray(QJsonArray::fromVariantList(variant.toList())); - } else if (variant.type() == QVariant::StringList) { + break; + case QVariant::StringList: doc.setArray(QJsonArray::fromStringList(variant.toStringList())); + break; + default: + break; } return doc; } |