History log of /haiku/src/kits/shared/Json.cpp
Revision Date Author Comments
# 916c6d94 19-Nov-2023 Andrew Lindesay <apl@lindesay.co.nz>

Shared : Larger buffer increments

This change will reduce the quantity of small requests
to increment the character assembly buffer when parsing
JSON.

Change-Id: I0998f6fb403bf6dc4736585bb69a103f3976a448
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7115
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 35c4600e 13-Nov-2023 Andrew Lindesay <apl@lindesay.co.nz>

Shared: JSON Parse Perf

Improve the mechanics for JSON parsing by reusing
text buffers during the parse.

Change-Id: I7fb2cae31e6558a5a0c63fd02e1fc6fec4f9e4b3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7106
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# b45e8b1e 19-Mar-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : additional debugging for json-rpc invocations


# a1c3daa6 01-Aug-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Streaming Icon Meta-Data Parser

More background work for later performance improvements.
This change generalizes the parsing of meta-data from
JSON streams as similarly structured meta-data is
anticipated to be carried in other payloads. Unit tests
have also been implemented to provide coverage on this
new functionality.


# 55f5f259 15-May-2017 Andrew Lindesay <apl@lindesay.co.nz>

JSON Parser : code style corrections


# 1f6b57a5 13-May-2017 Andrew Lindesay <apl@lindesay.co.nz>

Implementation of JSON Streaming Parser

This change will introduce a streaming parser capability to Haiku. The
existing functionality of writing the JSON data to a BMessage in-memory
model is retained. The new parser implements a SAX-style listener based
interface where the listener accepts parse events. Unit tests have been
supplied for the JSON parser as well.


# 6c9415e3 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

BJson: Use the normal "input, output" argument ordering instead of the reverse.

Update all in-tree consumers of the BJson API to match. Also added
const-qualifiers to the BString versions of the API, and added the leading
"_" to the header guards.


# aae43137 08-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

BJson: Fixes, tweaks, and behavioral changes based on the JSON Minefield Tests.

As found on http://seriot.ch/parsing_json.php -- anything using the API
presently with valid JSON should have no troubles, but more valid JSON
that previously didn't work now does (e.g. JSON with root array nodes, not
root map nodes), and invalid JSON that silently succeeded before now fails.

Not all the bad cases from that testsuite now fail, and not all of the good
ones pass, but the few that remain are odd things that wouldn't map well to
the BMessage API (e.g. root string nodes, etc.) or are other behaviors that
make sense to leave as they are for compatibility reasons.


# c144d339 01-Sep-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

Json: use B_PRI* constants

This fixes the x86_64 build.


# e9c77bd2 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Added TODOs.


# ee942591 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Fixed increasing position after constants.

The first letter is already increased by the main parse loop.


# ffd7c611 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Improve by using exceptions to get exact error

Also strip redundant "_Parser_" prefix from private methods.


# 79c1d45c 24-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

libshared: fix x86_64 build


# e4d2963e 04-Aug-2014 Augustin Cavalier <waddlesplash@gmail.com>

libshared: Introduce JSON parser and MessageBuilder.

Based on an earlier piece of source code of mine that parsed JSON into
QObjects, this JSON parser creates a BMessage tree.

Will be used by Stephan in HaikuDepot for communication with the web app.


# c144d33901412cccf289d0b40b7c62e1560f5070 01-Sep-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

Json: use B_PRI* constants

This fixes the x86_64 build.


# e9c77bd249d56840c153bcced386ca961162e1ab 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Added TODOs.


# ee942591caab3ded1222012d865605a66af17cc4 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Fixed increasing position after constants.

The first letter is already increased by the main parse loop.


# ffd7c6110b379115cef52fc40e03fdcf50eecb5b 30-Aug-2014 Stephan Aßmus <superstippi@gmx.de>

JSON parser: Improve by using exceptions to get exact error

Also strip redundant "_Parser_" prefix from private methods.


# 79c1d45cee995683a7cfbbf8b49ef2024a2eefd7 24-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

libshared: fix x86_64 build


# e4d2963e01eaa559c4cdc7165cd8ea0925e165dd 04-Aug-2014 Augustin Cavalier <waddlesplash@gmail.com>

libshared: Introduce JSON parser and MessageBuilder.

Based on an earlier piece of source code of mine that parsed JSON into
QObjects, this JSON parser creates a BMessage tree.

Will be used by Stephan in HaikuDepot for communication with the web app.