For completeness, we actually have a few more JSON libraries in
GeoTools/GeoServer in addition to what you listed:

   - Google GSON for MongoDB and ArcGIS REST (in GeoTools) and for WMS
   TopoJSON format and the GeoGig community module (in GeoServer), which is
   active.
   - Jettison 1.0.1 (via XStream) for the JSON portion of the REST API
   (Only in GeoServer). While the project is active, we're stuck on a 10-year
   old version for backwards compatibility reasons.

GSON is primarily intended for transforming Java to and from JSON , but it
does have minimal JsonPath
<https://google.github.io/gson/apidocs/com/google/gson/stream/JsonReader.html#getPath-->
support (With more robust integration added by the Jayway implementation
that you already mentioned). There's also a seemingly abandoned fork
<https://github.com/johnnylambada/gson/commit/344bd2fd4911146e761926d5ee1b441ba6bb9cfa>
that adds Json-Pointer support.
Overall, it seems like GSON doesn't quite have the capabilities you are
looking for, but it is already a dependency of some GeoTools modules so
maybe consider it?

More generally, I'd definitely say go for a JSON library we already depend
upon (given that we have too many already), be it Jackson or something else.
I think it's reasonable to add Jackson to gt-main. Having a JSON library as
part of a core module might encourage others to use it rather than adding
their own (although I rather doubt it).

Torben





On Wed, Jan 23, 2019 at 8:24 AM Ian Turton <ijtur...@gmail.com> wrote:

> I'd say go for Jackson as a main dependency and then someone (or me) could
> try to bring the other JSON modules uptodate by using it, I might even
> merge the two at the same time, but not until the weekend :-)
>
> Ian
>
> On Wed, 23 Jan 2019 at 15:45, Andrea Aime <andrea.a...@geo-solutions.it>
> wrote:
>
>> Hi all,
>> as you probably know GeoTools is now sometimes carrying around JSON in
>> feature attributes
>> (e.g., see JSON support in PostGIS data store).
>> The JSON is represented as a String.
>>
>> Now, I'd like to add a filter function to parse and extract specific
>> properties out of the JSON string... which
>> requires new dependencies. And boy we have a mess of them in the
>> classpath already:
>>
>>    - json-simple, used in geojson and mbstyles, but dead, last release
>>    is 2012
>>    - json-lib, used in GeoServer for geojson generation, and also dead,
>>    last release is 2010
>>    - jackson, used by Spring and directly by some GeoServer community
>>    modules, with recent releases and latest commits of only a few days ago
>>
>>
>> There are basically two languages to extract stuff from JSON, json-path
>> and json-pointer.
>> json-path is the one I would have preferred as it's more powerful, but
>> its situation library wise is not
>> exactly in great shape, the jayway implementation uses yet another json
>> java library, json-smart2, also dead.
>> There are a couple of other options for json-path, either dead or with a
>> bizzarre "do not evil" licence.
>>
>> json-pointer is instead supported directly by jackson-core, which is well
>> alive, and comes with a 300kb jar
>> that has no external dependencies. This seems the best bet, just one
>> hesitation... should I add a jackson-core
>> to gt-main? On one side, it seems a large-ish dependency for just a
>> function, on the other side having a single
>> class new module also seems a bit overkill.
>>
>> Opinions?
>>
>> Cheers
>> Andrea
>>
>> == GeoServer Professional Services from the experts! Visit
>> http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf
>> Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa
>> (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549
>> http://www.geo-solutions.it http://twitter.com/geosolutions_it
>> ------------------------------------------------------- *Con riferimento
>> alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 -
>> Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni
>> circostanza inerente alla presente email (il suo contenuto, gli eventuali
>> allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i
>> destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per
>> errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le
>> sarei comunque grato se potesse darmene notizia. This email is intended
>> only for the person or entity to which it is addressed and may contain
>> information that is privileged, confidential or otherwise protected from
>> disclosure. We remind that - as provided by European Regulation 2016/679
>> “GDPR” - copying, dissemination or use of this e-mail or the information
>> herein by anyone other than the intended recipient is prohibited. If you
>> have received this email by mistake, please notify us immediately by
>> telephone or e-mail.*
>> _______________________________________________
>> GeoTools-Devel mailing list
>> GeoTools-Devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>
>
>
> --
> Ian Turton
> _______________________________________________
> GeoTools-Devel mailing list
> GeoTools-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to