diff options
Diffstat (limited to 'src/corelib/serialization/qjsondocument.cpp')
| -rw-r--r-- | src/corelib/serialization/qjsondocument.cpp | 5 |
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; } |
