[pre-SRFI] JSON Amirouche Boubekki (01 Jan 2020 14:04 UTC)
Re: [pre-SRFI] JSON Amirouche Boubekki (01 Jan 2020 21:11 UTC)
Re: [pre-SRFI] JSON Lassi Kortela (02 Jan 2020 10:46 UTC)
Re: [pre-SRFI] JSON Amirouche Boubekki (02 Jan 2020 12:07 UTC)
Re: [pre-SRFI] JSON Duy Nguyen (02 Jan 2020 09:13 UTC)
Re: [pre-SRFI] JSON Lassi Kortela (02 Jan 2020 10:03 UTC)
Re: [pre-SRFI] JSON Amirouche Boubekki (02 Jan 2020 12:23 UTC)
Re: [pre-SRFI] JSON Amirouche Boubekki (02 Jan 2020 22:05 UTC)
Re: [pre-SRFI] JSON Duy Nguyen (06 Jan 2020 01:20 UTC)

Re: [pre-SRFI] JSON Amirouche Boubekki 02 Jan 2020 12:23 UTC

Hello Duy!

Thanks for chiming in the conversation.

Le jeu. 2 janv. 2020 à 09:13, Duy Nguyen <xxxxxx@gmail.com> a écrit :
>
> On Wed, Jan 1, 2020 at 9:04 PM Amirouche Boubekki
> <xxxxxx@gmail.com> wrote:
> >
> > Hello schemers!
> >
> > You can find the code and early draft specification at
> > https://github.com/amirouche/SRFI-JSON
>
> Is there any survey on json support status of "main" scheme implementations?
>
> I know Gauche supports json [1], and if this srfi was to be added to
> Gauche, I would love to see Gauche's implementation reused with a thin
> wrapper on top to provide the srfi api. Other schemes that already
> support json might want to go the same route.
>
> [1] https://practical-scheme.net/gauche/man/gauche-refe/JSON-parsing-and-construction.html

I am not sure about Gauche implementation [0].  I guess, it depends
how the PEG parser is implemented.

[0] https://github.com/shirok/Gauche/blob/master/lib/rfc/json.scm

I will extend the early draft to make it possible to implement Gauche interface.

In particular Gauche JSON module is not a streaming parser.  Streaming
parser are useful in contexts where JSON are very big, and you only
need a slice of it.  Example of such JSON include wikidata's JSON dump
[2].  I recognize that is not a very common use case to stream parse a
bigger than memory JSON.

[2] https://www.wikidata.org/wiki/Wikidata:Database_download#JSON_dumps_(recommended)

I think the main advantage of the parser I am working on, is that it
is safer or at least wants to be safer.

Also, there is existing stream parser for JSON in various language, so
it is clearly something:

- https://www.npmjs.com/package/JSONStream
- https://github.com/AMDmi3/jsonslicer
- https://github.com/danielyule/naya
- https://github.com/zserge/jsmn

And the following has an interesting rationale for the use of streaming parser:

- https://github.com/squix78/json-streaming-parser