我有很多XSL转换都依赖于java.beans.XMLEncoder
XML格式,我想知道是否可以找到性能更好的嵌入式替换库。我看过XStream,但是其序列化格式不同。
我正在替换它,因为我正在使用具有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 Converter来近似格式,但是我想知道在解决这个难题之前是否有更简单的解决方案。
最佳答案
万一以后有其他人碰到这个问题,只要您不关心元素的顺序,通过XStream实施将使您到达那里。您可能可以做一个更深的实现,使您可以控制元素的顺序,但是我最终放弃了这个想法,我将继续处理它,直到可以重新编写有问题的代码。