Details
-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.6.2
-
None
Description
But QJsonObject::value()::toArray() does.
The QVariant returned by QJsonValue::toVariant() seems to have the wrong variant type internally (QMetaType::QVariantList instead of QMetaType::QJsonArray).
Code to reproduce:
#include <QJsonArray> #include <QJsonObject> #include <QJsonDocument> #include <QVariant> int main() { QByteArray json = R"( { "a": { "b": [ { "id": "item1" }, { "id": "item2" } ] } } )"; QJsonDocument doc = QJsonDocument::fromJson(json); auto root = doc.object(); auto a = root.value("a").toObject(); auto bAsValue = a.value("b"); auto bAsVariant = bAsValue.toVariant(); auto bAsArray = bAsValue.toArray(); auto bAsArrayFromVariant = bAsVariant.toJsonArray(); return bAsArray.count() == bAsArrayFromVariant.count() ? 0 : -1; }
bAsArrayFromVariant is invalid above.