A small JSON parsing library
Remi Forax
forax at univ-mlv.fr
Thu Feb 14 07:53:23 PST 2013
Hi all,
just to see how it goes, I've written a small all-in-one-file library
that parses a JSON files to an object tree defined by the user. The
mapping is specified using lambdas, so it's compact but can burn your
eyes :)
https://github.com/forax/jsonjedi
The idea is that the JSON parser is triggered by the consumption of the
corresponding stream,
so when the code do by example a forEach on a Stream, the parser parse
the corresponding objects.
I've used an already existing push parser named json-simple for that.
During the development, I've found two main gotchas,
the first one is the scope rules of the lambda parameter,
I've already sent message about this rule, it seems that eah time I
write a page of code, the compiler stop me because I tend to re-use the
same variable name for the very same object.
In the example named Big [1], the builder of JSON schema is used
recursively but I've to use a different names each time (builder,
builder2, builder3).
We should really remove this stupid rule from the JLS and go back to the
classical shadowing rules.
The second problem is that the implementation uses method handles to but
due to the poor integration betweeen method handles and lambdas, I've 20
lines of boilerplate and error prone code [2] which is moreover executed
too eagerly.
cheers,
Rémi
[1] https://github.com/forax/jsonjedi/blob/master/src/Big.java
[2]
https://github.com/forax/jsonjedi/blob/master/src/jsonjedi/JSONSchemaBuilder.java#L358
More information about the lambda-libs-spec-experts
mailing list