JEP 198: Light-Weight JSON API
Remi Forax
forax at univ-mlv.fr
Thu Jul 31 00:35:00 UTC 2014
On 07/25/2014 04:45 PM, mark.reinhold at oracle.com wrote:
> New JEP Candidate: http://openjdk.java.net/jeps/198
>
> - Mark
Hi Mark, Hi Mike,
Implementing a json API was one of the use case I've used during the
development of the lambdas,
so maybe you are interested by this gist
https://gist.github.com/forax/81a56cf2684bfa2e46ec
which implement a Json API in one file (just for fun).
(the implementation requires a parser that implement the JSON
processing/streaming API, writing a new lightweight JSON parser was not
my concern :) at that time)
At the end of the file, there is a main with several examples.
The idea is to have a couple of interface (ObjectVisitor and
ArrayVisitor) that represent a lazy visit of a JSON tree,
that can reify a portion of the tree either using Map/Stream* objects or
using JsonObject/JsonArray objects or that can just skip a part of the
tree which is not necessary.
* JSON array are viewed as Stream so the parsing is triggered by the
terminal operation done on the Stream.
The interfaces are maybe a little over-designed (you can also skip
primitive values by example) but like the Collector API,
i like the idea that you have one API that let you just plug any tree
representation you want.
cheers,
Rémi
More information about the core-libs-dev
mailing list