As some of you are aware, the Java EE Guardians and DZone jointly conducted a community survey to help determine Java EE 8 features prior to JavaOne 2016. You may also be aware that we shared the results of that survey with Oracle before the details of the renewed Java EE 8 scope was announced. Now is a great time to start analyzing those results a bit more. I've already done a high-level summary of the results . I've also done a deeper dive into the responses for HTTP/2 and Servlet 4, Java SE 8 alignment , security , standards/innovation, and microservices. In this entry, I'll take a look at the responses for strengthening JSON support in Java EE.
Here is how the survey phrased the question:
"JSON has replaced XML as the de-facto data interchange format. Java EE has long had excellent support for XML through JAXP and JAXB. On the other hand Java EE 7 includes only a very basic programmatic API similar to JAXP named JSON-P.
Java EE 8 has been slated to include a minor update to JSON-P that incorporates the latest JSON standards such as JSON Pointer. In addition a higher level annotation based API similar to JAXB named JSON-B has been targeted for Java EE 8.
How important is it to strengthen JSON support in Java EE?"
The following graphic shows how the community responded. Clearly, the mandate for adding more JSON support to Java EE is extremely strong. Indeed, this is one of the items supported the most strongly along with HTTP/2, security, and Java SE 8 alignment. 62% said it is very important while another 24% said it is important — with a combined total of 86%. Only about 3% said it is not important.
Here are some representative comments from participants in the order that people filled in the survey:
- "It is important to make JSON easy to utilize from Java EE, so JSON-B is an important addition to the platform. The enhancements to JSON-P would be nice to have since they are part of the JSON standards"
- "It would help bring some order to the zoo of libraries for JSON in Java like Jackson and GSON. Anything that would help standardize the behaviors of those implementations would be a good thing"
- "A more mature JSON-P, and the inclusion of JSON-B, are godsends for any Java code that needs to work with JSON data"
- "Current frameworks, such as Jackson and GSON lack standardization, making them hard to work with"
- "JSON rules the world when it comes to interchange formats. Java EE should make it a first class citizen"
Like most items, Oracle's own Java EE 8/9 survey essentially mirrors our survey results. Indeed, the Oracle survey serves to clarify nicely what developers are thinking. While JSON-B ranked high at 4.1, support for the JSON-P update was much weaker at 3.8. For context, in the Oracle survey, 1 indicated "Not Important" while 5 indicated "Very Important". This generally makes a lot of sense. JSON-P was already a pretty complete API in Java EE 7 and the use cases for JSON-B are likely a lot higher than the lower-level JSON-P API. What is notable but not altogether surprising is the strong support in favor of standardization the JSON voting patterns represent. Java EE 7 and JAX-RS 2 implementations have long provided JSON binding support in non-standard ways — most notably through Jackson and EclipseLink MOXy. Nonetheless, developers have a strong desire to have standard Java APIs for JSON.
Fortunately, Oracle decided to move forward both JSON-P and JSON-B in Java EE 8. Indeed both APIs are now rapidly nearing completion. If you are interested, a great way to start learning about stronger JSON support in Java EE 8 is by looking at a slide deck from Dmitry Kornilov . Dmitry leads both the JSON-P and JSON-B specifications.
Please do stay tuned as I further look at specific topics in the survey. In addition to my write-up, I would encourage you to look at these survey results yourself and get involved in Java EE 8. You can certainly do so by becoming a part of the Java EE Guardians .