[Interest] QJsonDocument::fromVariant failing with list

Jérôme Godbout godboutj at amotus.ca
Tue Jun 8 22:42:52 CEST 2021

Most likely the QJson doesn’t known what to do with your QList<> type object. You should put those object into a QVariantList, right now you have a QVariantList that contain a QList as first element. You should convert the Qlist to a QVariant (not sure you want 2 level deep array, but right now you do). You QList<QVariantMap> and QVariantList is QList<QVariant>.

Right now if it could do something with the QList you would get this:
{"err":null,"letters":[[{"a": 1},{"b": 2},{"c": 3}]]}

Something like this, not sure this is possible declaration but you are looking to get this in the end. Or make a converter that convert your QList to a QVariantList if you still need that QList absolutely.

QVariantList letters {
                        QVariantMap {{"a",1}},
                        QVariantMap {{"b",2}},
                        QVariantMap {{"c",3}}

Not tested just giving the idea
// can use traits if T is QVariant to simply convert by casting since it’s the same
Template<typename T>
QVariantList Convert<T>(const QList<T>& l)
                QVariantList rv;
                for(auto i in l)
return rv;

From: Interest <interest-bounces at qt-project.org> on behalf of Jason H <jhihn at gmx.com>
Date: Tuesday, June 8, 2021 at 4:23 PM
To: interestqt-project.org <interest at qt-project.org>
Subject: [Interest] QJsonDocument::fromVariant failing with list
I'm having trouble with QJsonDocument::fromVariant() is not handling arrays:

        QVariant list;

        QList<QVariantMap> letters {
                        QVariantMap {{"a",1}},
                        QVariantMap {{"b",2}},
                        QVariantMap {{"c",3}}

        map["err"] = QVariant(); // null
        map["letters"] = list;

        qDebug() << QJsonDocument::fromVariant(map)


I'm expecting:
{"err":null,"letters":[{"a": 1},{"b": 2},{"c": 3}]}

The debugger (screenshot attached) sees it. Is this a bug or am I doing it wrong?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210608/c91efcb0/attachment.html>

More information about the Interest mailing list