summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qjsondocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/serialization/qjsondocument.cpp')
-rw-r--r--src/corelib/serialization/qjsondocument.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/corelib/serialization/qjsondocument.cpp b/src/corelib/serialization/qjsondocument.cpp
index fe33ff8e548..d1cefc385f8 100644
--- a/src/corelib/serialization/qjsondocument.cpp
+++ b/src/corelib/serialization/qjsondocument.cpp
@@ -272,6 +272,11 @@ QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *e
if (val.isArray() || val.isMap()) {
result.d = std::make_unique<QJsonDocumentPrivate>();
result.d->value = val;
+ } else if (!val.isUndefined() && error) {
+ // parsed a valid string/number/bool/null,
+ // but QJsonDocument only stores objects and arrays.
+ error->error = QJsonParseError::IllegalValue;
+ error->offset = 0;
}
return result;
}