Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.15.0
-
3579a91f83deeef6d747ffb8971fce287bc7edc5 (qt/qtbase/5.15)
Description
The conversion of integer values from a JSON document to a QVariant has changed from 5.14.2 to 5.15.0. It can happen that an integer value in the JSON document is converted to a QVariant of type qlonglong instead of double, depending on whether the value is contained in braces (and therefore part of a QMap in the converted result) or not. In 5.14.2, it will consistently be converted to a QVariant of type double, which is the expected result since the only numeric type for QJsonValue is QJsonValue::Double.
The attached test project shows the problem, the integer value is converted to different types in 5.15.0 depending on the context, but always to double when the project is started in 5.14.2
The change converting integer values to qlonglong instead of double seems to be introduced when reimplementing JSON support on top of CBOR (https://codereview.qt-project.org/c/qt/qtbase/+/265312), and https://codereview.qt-project.org/c/qt/qtbase/+/277622 fixes the problem with inconsistency
Attachments
Issue Links
- depends on
-
QTBUG-84739 Regression with dataloss
- Closed