[Development] Json support for QtCore
sivan at omniqueue.com
Sun Dec 11 10:39:06 CET 2011
On Sat, Dec 10, 2011 at 11:32 PM, <lars.knoll at nokia.com> wrote:
> there were quite a few discussions and requests over the last months to
> add Json support as part of QtCore, and maybe integrating one of the
> existing parsers.
There were also discussions and even a couple of bug report about
adding "native" (a'la making Json first class citizen) support to QML
as well (I guess this means adding it to the QDeclerativeContext
engine?) , in favor of having one implementation that'd be standard
and fast - https://bugreports.qt.nokia.com/browse/QTBUG-12117 .
> I was however never really happy with them. Mainly because they all parse
> into a QVariant(Map), and don't offer any real API to create and modify
> Json. In addition, I believed that it was possible to create a faster
> parser, and wanted to have a binary representation for the parsed Json.
I wonder if the QML implementation in the bug report would suffer from
the same (or perhaps worse?) performance issues?
> So I sat down over the last weeks and implemented hacked on something on
> my own. You can see the current state in our first playground project that
> Sergio created for me yesterday. You can clone it from
So, could be bind this to have an QML "native" JSON implementation and
handling? Perhaps also to tie it in to have a JsonModel just as the
XmlListModel uses XML?
> Things look rather promising, and I consider the code to be mostly feature
> complete. There's work to be done on the API, and documentation is still
> completely missing, but most of the other pieces are there.
/me keen to find a spare weekend to check this out.
> What I have right now:
> * A binary representation of Json, that can be simply mmap'ed from a file,
> or copied around. This gives us an extremely cheap way to load and save
> Json objects in binary form.
Would this enable us to store complete binary chunks (files, network
dumps etc..) as BSON allows? I have some use cases for this if this is
> The binary representation is optimized for fast reading. The binary format
> is relatively compact and stores the whole object in one blob.
Is this a standard binary format of JSON, or something of your own devise?
> There's a bit of work still required to finish it, but I would like to
> start the discussion about including it into QtCore anyways. I'd also be
> happy about any feedback.
Many thanks for this!
More information about the Development