2012-09-18 144 views
0

我是一位熟悉Java的前端開發人員。我有一個真正艱難的時間提高性能&開發優點/缺點使用方法轉換與JSTL轉換Java對象到JSON。Java to JSON轉換:JSTL vs Methodical(Jackson/Gson)

我知道,通過有條件的轉換,額外的一層getter/setter類可以用於安全性 - 也有一個非常大的預感,它只是圍繞着更快,更少的資源密集型,但我不能找到任何證據。我只能找到JSON庫之間的比較。

我的原因,我需要詳細說明:

  • 嚴格的安全 - 因缺乏證據反駁
  • 更容易 - 由我們控制哪些數據被顯示在JSP
  • 更快,更少的開銷反駁標準化 - 由缺乏靈活性反駁

下面是我遇到的幾個鏈接(下面) - 我真的在尋找一些比圖書館的比較堅實的研究。另外,如果任何人都能向我展示傑克遜提供的OJM地圖的一些可靠實例 - 那真是太棒了。

再一次,我知道這是很通用 - 但我只是廁所國王的建議和提出的原因爲什麼有條不紊比使用JSTL。

+0

另外,DTO與此概念有關 - http://msdn.microsoft.com/en-us/magazine/ee236638.aspx –

+0

更多相關討論 - http://stackoverflow.com/questions/1612334/difference-between -dto-vo-pojo-javabeans –

回答

1

對於性能而言,根據大多數公開測量,例如JVM Serializers基準,Jackson是快速常用的庫。您可以輕鬆地自行測試此功能,也可以通過Google進行測試(基準測試版適用於Android,Java SE)。

Jackson OJM很簡單。由於對象 'OB':

​​

和併發症大多來自Java泛型的任何處理的Map S,List S(使用TypeReference);非標準的命名約定(使用註釋爲Java屬性名稱定義JSON名稱)等。

教程存在,例如:

大多數主要的Java框架正在使用或將要使用傑克遜爲自己JSON轉換:所有JAX-RS實現(Jersey,RESTeasy,CXF),Restlet(2.0),Play(2.0),SpringMVC。由於效率和可擴展性,它已成爲事實上的標準庫,後者對於框架最爲重要。基於傑克遜的JSON處理也被發現與「更快」的二進制格式競爭(這意味着在大多數Web服務案例中切換到使用Thrift,Avro或Protobuf幾乎沒有什麼收穫)。

GSON也被廣泛使用,與傑克遜一樣易於使用數據綁定。

+0

我非常欣賞這種迴應 - 我想我期待着更復雜的映射定義,並且正在尋找更復雜的東西,這種東西不存在。那麼「OJM」只是自動獲得者和制定者? –

+1

這是一個起點,在最佳情況下,是的,事情只是匹配。這是JSON的美妙之處,因爲它的信息模型基於對象(而不是關係模型(SQL)或分層(XML)),因此它應該以非常簡單的方式進行映射。對於某些方面有很多 - 比如多態類型;或保存對象身份;或者如何支持不可變類型(自定義構造函數) - 但您可以非常輕鬆地開始。 – StaxMan