Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

JeSON: Experienced Java Developers Needed

2013-03-18
2013-03-25
  • Matthias Rothe
    Matthias Rothe
    2013-03-18

    Hi,

    JeSON has just seen the light of day and you can be one of the first to work for this thrilling new project.

    JeSON stands for JSON essentials and there are two goals this project aims to achieve. First it aims to provide a toolbox for working with JSON. Second it aims to build high level user APIs based on that toolbox. So while everything in the toolbox can be used by end users (application and library developers) as well, as the need be, there will also be ways to use high level APIs to get complex jobs done.

    The most interesting of such high level APIs are obviously APIs enabling JSON manipulation and JSON to Java objects binding.

    Based on a JSON streaming API for reading and writing JSON, most functionality will be implemented within a visitor API sitting on top of the streaming API. Using the visitor API and a JSON path module it becomes possible to implement easy to use high level APIs that allow for very fast and flexible JSON processing.

    While the streaming and visitor APIs and the JSON path module have already been implemented, there is still lots of work to do to integrate them and build high level APIs on those foundations.

    If you are an experienced Java developer, preferrably having already worked with visitor APIs such as the low level Java bytecode manipulation API of ASM, we'd like to hear from you and welcome you aboard this new exciting project.

    Kind regards,
    Matt - Project Lead - mimarox@users.sourceforge.net

     
  • Matthias Rothe
    Matthias Rothe
    2013-03-22

    An update: It has become clear now what JeSON is actually going to be: a transformation engine for all representations of JSON, as there are String/Stream, JSON tree and Java objects. All representations can be converted into all others applying transformations along the way. The transformations are expressed using a high level fluent API looking something like:

    within(json).at("$.boo").applying(new JsonTransformations() {
    protected void defineTransformations() {
    at("$.foo[*].bar").store(element);
    remove().from("$.baz")
    }
    }).getAsJson();

    As simple conversions are just transformations without any changes they are obviously supported as well. So there will be a high level Conversion API and a high level fluent Transformation API. Besides that JeSON will support a comprehensive JSON tree API to make the most of the tree representation. The tree API let's the user handle JSON trees as members of the Java Collections Framework: a JsonObject is a Set<JsonProperty> and can also be viewed as Map<String, JsonType="">, a JsonArray is a List<JsonType>. Furthermore the tree API supports JsonPath to retrieve, insert, update, remove and convert parts of the JSON tree.

    As the project just started there is lots to do in terms of implemention of low level and high level components, as well as unit tests. JavaDoc and user documentation must be created. Performance tests need to be conducted and there are sure to appear lots of other tasks as well.

    So if you want to be part of a new exciting project, please drop me a mail.

    Matt

     
  • Matthias Rothe
    Matthias Rothe
    2013-03-25

    Another update: To differentiate the project better from other JSON libraries / frameworks it has been renamed to Jetro. The JeSON project is discontinued, so for any info about the project, please visit the Jetro project page, or the developer wiki at GitHub.

    Thanks, Matt