使用Jackson JSON處理器和Apache Wink: 更簡單的JAX-RS和Ajax整合

來源:互聯網
上載者:User

Apache Wink 正在快速成長為 JAX-RS 1.0 規範的標準實現之一。Apache Wink 版本附帶的面向 JSON 編組和解組的提供者,例如 JSON.org 和 Jettison,在數組表示方面有一些問題,並且傳回型別比較有限。編寫 JAX-RS 服務及其客戶 Asynchronous JavaScript and XML (Ajax)應用程式非常困難。在本文中,學習如何配置一個現有的支援 Apache Wink 的 Web 應用程式,從而使用 Jackson JSON 提供者來解決一些問題。將使用一個簡單的支援 Jackson 的 JAX-RS Web 服務的程式碼範例示範這個提供者的優點。

簡介

Apache Wink 正在快速成長為 JAX-RS 1.0 規範的標準實現之一。JSON.org 和 Jettison 是 JSON 同步的預設提供者,但是它們自身存在某些問題。例如,它們的數組表示和有限的傳回型別使編寫 JAX-RS 服務及其客戶 Ajax 應用程式變得很困難。

本文概述了一個配置現有的支援 Apache Wink 的 Web 應用程式來使用 Jackson JSON 提供者的方法。通過使用一個簡單的支援 Jackson 的 JAX-RS Web 服務的 範例代碼 來瞭解這種提供者的優點。

Apache Wink 附帶的 JSON 提供者

Apache Wink 打包了兩個 JSON 提供者作為標準版本的一部分:JSON.org 和 Jettison 實施。這兩個提供者都會使 Wink 服務和 AjaxBoth 應用程式的整合複雜化。這兩個提供者都不能直接將一個 Java 列表作為傳回型別序列化到 JSON,因為 JAXB 需要一個封裝的 XML 元素。這兩者還有一些其他問題,例如:

JSON.org

JSON.org 提供者的數組序列化是可預見的,但是這個行為在和 Ajax 互動時是不可取的。當它顯示各種大小不同的數組時,JSON.org 會以不同的方式呈現它們:

2+:“正確的” 數組序列化。例如:object : { array : ["element1", "element2"] }

1:摺疊數組。例如:object : { array : "element1" }

0:完全刪除數組。例如:object : { }

很明顯,在 Javascript 中對不同結構的編碼限制會導致多餘的、不必要的複雜性。

Jettison

Jettison 對 JSON 產生使用 Badgerfish 慣例,這將產生一種結構,這種結構在轉換為 Javascript 對象後很難進行導航。

Jackson

Jackson 本質上就是一個 JSON 處理器,用於 Java 對象的 JSON 表示的產生和解析。還可以對 Jackson 進行配置,作為 JAX-RS 實現的一個 JSON 序列化提供者。

作為一個 JAX-RS JSON 序列化提供者,如下所述,Jackson 有幾個 JSON.org 和 Jettison 所沒有的優點。

表 1. Jackson 的優點

優點 描述
在本地序列化列表的能力 Jackson 可以直接從服務中返回一個字串對象的列表,無需一個封裝的 XML 元素。
數組處理 Jackson 擁有良好的、可預見的數組序列化設施。
速度 具有比其他提供者更快的速度。
許可 Apache License 2.0 得到了很好的理解。使用該許可的組件被用於商業和免費軟體產品。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.