JSON-B這個有望添加到Java EE 8的JSON綁定庫發布了公開預覽版。該庫以JSON Processing(不要同JSONP或JSON-with-padding混淆)為基礎構建,旨在為諸如Jackson或Gson這樣的常見庫提供一種標準的替代方案。不過,該JSR只針對Java EE,也就是說,Java SE的用戶仍然需要使用第三方庫。
為了提供一個JSON操作的API,Java EE 7于2013年引入了JSON Processing庫。雖然JSON-P在操作和創建JSON對象時非常有用,但事實證明,它不足以滿足開發人員的日常需求,他們需要一種更簡單、更透明的方式,將一個普通的Java對象轉換為JSON,反之亦然。
JSON Processing只是一個部分的解決方案,此外,它還比若干第三方工具出現得晚,其中包括2008年的Gson和2009年的Jackson。這些工具提供了多種集成機制來同其他Java EE組件,如JAX-RS,交互,使得它們在Web開發中非常流行。然而,不同技術的傳播讓創建可移植的應用程序變得困難,標準化解決方案的需求日益凸顯。這從2014年的Java EE 8社區調查就看出來了,投票結果顯示,JSON綁定工具成為Java EE新版本中優先級最高的特性。有鑒于此,針對JSON-B的JSR于那一年的8月被創建了出來,并計劃在2017年上半年發布。
雖然社區對于這類功能有著強烈的需求,但該庫面臨的若干風險會妨礙它的應用。一方面,JSON Binding可能出現的太晚了:當前在2017年發布的計劃已經意味著比最初的計劃延期了6個月,這也意味著,Java EE 8本身也要延期6個月。不僅如此,對于這個行業來說,當前的時間表意味著7年的延期。
另一方面,Jackson開發負責人Tatu Saloranta指出,基于JSON Processing限制了JSON Binding的應用范圍和可擴展性。Saloranta探討了嘗試基于JSON-B使用新標準重新實現Jackson的可能性,但幾乎立刻就否定了這種可能性:
比如,這兩點讓實現Jackson或者基于JSON-B實現非常困難。除了全部的授權問題外,受限的范圍和可擴展性意味著,Jackson所做的許多工作,除了簡單的JSON數據綁定外,將無法以一種兼容的方式提供。
這可能削弱了JSON-B所帶來的好處,加重人們對于Java EE沒有獲得足夠重視的擔憂,就像JCP執行委員會最近一次會議所反映出來的那樣,可能會導致Java EE的開發職責轉移到社區。
查看英文原文:New JSON Binding Library Is Ready for Public Review