2016-01-07 98 views
1

我有很多依賴於java.beans.XMLEncoder XML格式的XSL轉換,我想知道是否可以找到具有更好性能的嵌入式替換庫。我看過XStream,但其序列化格式不同。直接替換java.beans.XMLEncoder

我正在尋找替換它,因爲我正在使用具有XMLEncoder分叉版本的遺留代碼庫,我想將它還原爲更標準的東西,但java.beans.XMLEncoder的性能差得多。

針對一類Person(在適當的getter和setter):

public class Person { 
    private String name; 
    private List<String> favoriteColors; 
    private Date birthDate; 
    private int age; 
} 

XMLEncoder產生XML這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.8.0_66" class="java.beans.XMLDecoder"> 
<object class="Person" id="Person0"> 
    <void property="age"> 
    <int>40</int> 
    </void> 
    <void property="birthDate"> 
    <object class="java.util.Date"> 
    <long>175064400000</long> 
    </object> 
    </void> 
    <void property="favoriteColors"> 
    <void method="add"> 
    <string>red</string> 
    </void> 
    <void method="add"> 
    <string>green</string> 
    </void> 
    </void> 
    <void property="name"> 
    <string>John Doe</string> 
    </void> 
</object> 
</java> 

我猜測它有可能創造一堆XStream轉換器來逼近格式,但我想知道是否有一個更簡單的解決方案,然後我低頭那個兔子洞。

回答

0

如果其他人稍後再遇到這種情況,只要您不關心元素的順序,通過XStream實現就可以讓您在那裏。你或許可以做一個更深入的實現,它允許你控制元素的順序,但是我最終拋棄了這個想法,直到我可以重新編寫有問題的代碼,我纔會處理它。