java 中 Object XML 互转,最终选择Xstream
生活随笔
收集整理的這篇文章主要介紹了
java 中 Object XML 互转,最终选择Xstream
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- spring boot 2.0.0 RELEASE
- maven 3.5.0
- 項目中需要進行 Object 與 XML 的互轉。為此嘗試了幾個互轉工具,進行記錄。
- 耗費了一天的時間,將FasterXML、Caster、JAXB、Xstream都嘗試了一遍。過程很痛苦。記錄一下。
- 最終選擇Xstream(未評價性能,只是看能不能滿足功能要求。此項目暫無性能要求。)。
FasterXML
- Jackson可以輕松的將Java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉換成Java對象。
- 嘗試版本:jackson-dataformat-xml 2.9.0
- 項目地址:https://github.com/FasterXML/jackson-dataformat-xml
- 無復雜要求的 Object 與 XML 的互轉可以勝任,復雜的還是不可以的。具體可以參考 https://github.com/FasterXML/jackson-dataformat-xml 中列出的限制。
- 如果 Object 與 XML 的互轉受自己控制,可以選擇FasterXML。使用起來挺簡單的。還能支持json格式。
- 如果 Object 與 XML 的互轉不受自己控制,比如:與外部系統通過xml進行數據交互時,不建議用啊。你也不知道對方會不會來個炫技啥的,出現個識別不了的XML時,還得換工具,比較麻煩,還是防微杜漸吧。
Spring Marshalling XML using O/X Mappers
- 嘗試版本:Spring 5.0.4.RELEASE
- Spring提供的 Object 與 XML 的互轉工具。吐槽一下,單獨使用時,真心不好用。或許是未考慮單獨提供出來用。
- Spring只是統一了接口,具體的實現有:JAXB、Caster、JiBX、Xstream
- Caster:已經放棄支持了。“Spring Framework 4.3.13, due to the lack of activity on the Castor project”
- JAXB:與Spring集成后,無法設置NamespacePrefixMapper。
- JiBX:未嘗試集成。
- Xstream:未嘗試集成。
JAXB
- 嘗試版本: JAXB 2.3.0
- 項目地址:https://github.com/javaee/jaxb-v2
- 基本上能夠滿足我的要求,用著挺好用。也能跟spring集成。支持注解,注解使用起來方便,注解支持的也多。
- 唯一缺點:不能將NameSpace的前綴設置成空(”“/null)。設置了也無效。(設置成其它的,是有效的)
- 項目的git倉庫中,示例不少,這點真心不錯。
- 對于需要將NameSpace的前綴設置成空(”“/null)時,放棄它吧。(花了半天時間,檢索了大量的文章,也沒能解決此事)
Xstream
- 嘗試版本: xstream 1.4.10
- 項目主頁:https://x-stream.github.io/index.html
- 支持注解。
- 支持List/Map。
- 能夠設置NameSpace的前綴設置成空(”“/null)。
- 能與Spring集成,也可以單獨使用。
總結
以上是生活随笔為你收集整理的java 中 Object XML 互转,最终选择Xstream的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 采用 CoWoS 封装,消息称英伟达中国
- 下一篇: asp.net ajax控件工具集 Au