On Tuesday, 13 April 2021 07:29:48 PDT Lars Knoll wrote: > The binary JSON support is deprecated and only there for backwards > compatibility. It had some issues (e.g. it couldn’t handle large JSON > files), that’s why we deprecated it. It’s gone in Qt 6. I guess the docs > need some adjustment though.
There's a QBinaryJsonDocument class that is not part of QtCore or qtbase that you can use to load your old documents and then extract data from, even save data to it again if you need to retain compatibility. The limitation of 128 MB maximum size remains. QCborValue had a size limitation in 64-bit Qt 5 due to internally using QVector and QByteArray, so it couldn't deal have any array with more than 128 * 2^20 elements or maps with half as many, or any arrays or objects where string content in that level added up to more than 2 GB. Those limitations are gone in Qt 6 and you'll run out of memory before you run into the limitations. Parsing time of text JSON and CBOR is mostly the same and remains so from before the 5.15 switch of QJsonDocument's backend. They're all dominated by memory allocation. The big advantage of the binary JSON is that it made one huge allocation at the beginning equal to the size of the input, and in most cases that was just large enough for the binary data and would need no reallocation, with acceptable overhead. That overhead could be large if you had deeply-nested arrays and objects, with a lot of whitespace in your non- compact JSON text form, though. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel DPG Cloud Engineering _______________________________________________ Development mailing list [email protected] https://lists.qt-project.org/listinfo/development
