175QJsonDocument QJsonDocument::fromVariant(
const QVariant &variant)
179 switch (variant.metaType().id()) {
180 case QMetaType::QVariantMap:
181 doc.setObject(QJsonObject::fromVariantMap(variant.toMap()));
183 case QMetaType::QVariantHash:
184 doc.setObject(QJsonObject::fromVariantHash(variant.toHash()));
186 case QMetaType::QVariantList:
187 doc.setArray(QJsonArray::fromVariantList(variant.toList()));
189 case QMetaType::QStringList:
190 doc.d = std::make_unique<QJsonDocumentPrivate>();
191 doc.d->value = QCborArray::fromStringList(variant.toStringList());
267QJsonDocument QJsonDocument::fromJson(
const QByteArray &json, QJsonParseError *error)
269 QJsonPrivate::Parser parser(json);
270 QJsonDocument result;
271 const QCborValue val = parser.parse(error);
272 if (val.isArray() || val.isMap()) {
273 result.d = std::make_unique<QJsonDocumentPrivate>();
274 result.d->value = val;
275 }
else if (!val.isUndefined() && error) {
278 error->error = QJsonParseError::IllegalValue;
498QDataStream &
operator>>(QDataStream &stream, QJsonDocument &doc)
502 QJsonParseError parseError{};
503 doc = QJsonDocument::fromJson(buffer, &parseError);
504 if (parseError.error && !buffer.isEmpty())
505 stream.setStatus(QDataStream::ReadCorruptData);