[Interest] QJsonDocument::fromVariant failing with list
Thiago Macieira
thiago.macieira at intel.com
Wed Jun 9 16:48:06 CEST 2021
On Wednesday, 9 June 2021 07:15:37 PDT Jérôme Godbout wrote:
> I understand the homogenous part when you do decoding, but encoding to json
> should support the homogenous, isn’t? why not? I understand that the decode
> of that json would alter the type.
>
> QList<QVariantMap> • encode json • [{‘a’: ‘b’}, {‘c’:’d’}] • decode json •
> QList<QVariant>
I don't understand the question.
Please rephrase without saying "encode json". There's no encoding to JSON
format here. There's only a translation between two different types of data
structures: a QVariant-based collection and the QJsonDocument's internal
representation.
> Should be possible as long as QList<T> where T can be convert to QVariant.
> Maybe an external converter function should be used. If this is not
> supported, is there a way where we could trap this at compile time warning?
>
> Maybe there is a limitation I do not see here.
That would require us to add a new function to the meta type of all registered
types that convert them to QVariant and possibly also from it. There's no such
thing in QMetaType right now. Moreover, it would require us to know that
QList<T> is a list of T.
There may be hope for that in QSequentialIterable, but that's black magic in
Qt I *refuse* to touch. I'll pretend it doesn't exist and will not add support
for it in the QJsonValue/QCborValue to/from QVariant conversion code.
I may even reject submissions adding them because they would increase my
maintenance burden.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel DPG Cloud Engineering
More information about the Interest
mailing list