<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Brett,
<div class=""><br class="">
</div>
<div class="">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.</div>
<div class=""><br class="">
</div>
<div class="">Cheers,</div>
<div class="">Lars</div>
<div class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 13 Apr 2021, at 15:43, Stottlemyer, Brett (B.S.) <<a href="mailto:bstottle@ford.com" class="">bstottle@ford.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">Hi,<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">I was at the Contributor’s Summit where it was discussed, so I know there were good reasons to deprecate the binary json format.  The actual changes looks to have been done in<span class="Apple-converted-space"> </span><a href="https://codereview.qt-project.org/c/qt/qtbase/+/265312" style="color: rgb(5, 99, 193); text-decoration: underline;" class="">https://codereview.qt-project.org/c/qt/qtbase/+/265312</a>.<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">IIUC, the original intent was that parsing the JSON creates a lookup table to speed up subsequent access, and the binary format saved that table to disk (or for streaming).  This allowed “opening the JSON” (technically
 no longer JSON?) much more quickly.<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">Is such a mechanism still available currently?  Or is parsing the data from scratch necessary now?<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">For reference, I tried the deprecated calls and also used the conversion tool to convert to CBOR and tried reading that.  With a particular (~20MB) JSON file from a REST call, parsing the CBOR version of the file was
 about twice as fast as JSON, while the binary JSON format was about 2.5x *<b class="">slower</b>* than parsing the JSON (just measuring the document creation time).<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">FWIW, if the capability is no longer available, the overview for Qt JSON (<a href="https://doc.qt.io/qt-5/json.html" style="color: rgb(5, 99, 193); text-decoration: underline;" class="">https://doc.qt.io/qt-5/json.html</a>)
 should probably have “It also contains support for saving this data in a binary format that is directly "mmap"-able and very fast to access” removed.<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">Thanks!<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class="">Brett<o:p class=""></o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
<div style="margin: 0in; font-size: 12pt; font-family: Calibri, sans-serif;" class="">
<span style="font-size: 11pt;" class=""><o:p class=""> </o:p></span></div>
</div>
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Development
 mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<a href="mailto:Development@qt-project.org" style="color: rgb(5, 99, 193); text-decoration: underline; font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Development@qt-project.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<a href="https://lists.qt-project.org/listinfo/development" style="color: rgb(5, 99, 193); text-decoration: underline; font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://lists.qt-project.org/listinfo/development</a></div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>