[erlang-questions] new json parser

Willem de Jong <>
Fri Aug 8 17:25:38 CEST 2008


Hi all,

I have uploaded a json parser to trapexit. (
http://forum.trapexit.org/viewtopic.php?p=44029#44029)

More than anything else, the purpose of this parser is to convince Richard
O'Keefe that having a json parser with a SAX-like API is a good idea. But
fortunately it can also serve more practical purposes.

As mentioned, the parser has a SAX-like API. It also has a mechanism to
parse input data in blocks - if it reaches the end of the input data, it
will call a function to provide the next block. The combination of these
properties results in a parser that can process input of
arbitrary size, or a stream of data.

Included is a handler function that translates the SAX events into the same
output format produced by mochijson2. Looks like this: {struct,
[{<<"key1">>, <<"value1">>}, {<<"key2">>, 123}]}. Interestingly, the new
parser (sax parser combined with handler) is roughly 2x as fast as
mochijson2 (On my PC, at least).

The parser consists of just 1 file, with some edoc documentation and a
couple of very simple examples included. It only works on UTF-8 encoded
input (which implies that it can also parse ASCII, of course).
Regards,
Willem
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080808/fec256a6/attachment.html>


More information about the erlang-questions mailing list