I am glad to announce the latest jackson-apt that provide support for using the same mapper instance on both client side and server side, finally you can annotate the type in the shared module and generate a mapper into the shared module and use it in both client code and server code, sample have been included in the repository and a snapshot is now avialble, please read the README. file for the new dependencies. :smile:
https://github.com/vegegoku/gwt-jackson-apt also you can join me in the gwt-jackson-apt channel for discussions, feedback, questions, opinions.. and what ever you think is interesting.. :smiley: https://gitter.im/domino-gwt/Gwt-jackson-apt On Monday, December 11, 2017 at 2:25:04 PM UTC+2, Thomas Broyer wrote: > > Hi all, > > Following up on > https://github.com/gwtproject/gwt/issues/9484#issuecomment-277216304, > I've been toying around to build a new JSON library for GWT. > Note that my goal is to have a lightweight library that could be used both > on the client-side with GWT (and then j2cl), and on the server-side or in > any JVM; and "mapping" to/from POJOs is (currently) out of scope. > > What do you think would be the best API? > > > - Same as com.google.gwt.json. > This API is IMO verbose, and is based on wrapper objects that add > runtime overhead. > - Same as elemental.json, except for JsonNull which goes away > (represented by a Java 'null' and interchangeable with 'undefined'). > Lighter-weight, both in terms of API verbosity and runtime overhead > (no wrapper object). > Based on type coercion (you can ask every JsonValue to be returned as > a boolean, double, or String, and value will be coerced accordingly). > elemental.json "JRE" types are also usable on client-side, and can be > transported through GWT-RPC; I believe this is an aspect that we cannot > preserve. > - Similar to jsinterop-base's Any, JsPropertyMap and JsArrayLike (for > JsonValue, JsonObject and JsonArray respectively), and using Java String > and primitives for other value types; and probably with the addition of a > JsonType enum (or isXxx methods) on Any/JsonValue to be able to tell value > types apart before you call the (throwing) asXxx methods. > This is actually similar to elemental.json but without the > JsonBoolean, JsonNumber, and JsonString types; and it throws rather than > coercing values. > This could even go farther and directly use JsonValue[] instead of > JsonArray. > - Something else? > > One question also is whether this should be used for consuming JSON > mostly, or also for creating JSON (you'd generally use POJOs and serialize > them to JSON I believe, but there may be cases where you want to create a > dynamic structure that you cannot easily represent as a tree of POJOs), > and/or "updating/modifying JSON" (parse, update, stringify). > > Fwiw, this would also be a good opportunity to shape how a cross-platform > library would be developed in terms of project layout and tooling (in both > Gradle and Maven). > > Wrt the JVM/server-side support, what JSON parsing library should be used? > I was heading towards the lightweight Moshi from Square, but I believe > there could possibly be several "adapters" for Moshi, GSON, Jackson, etc. > (and even org.json's JsonTokenizer/JsonStringer) > -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/f7d51867-6062-4a37-98f6-e0ec8f03681a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
