java.beans.XMLEncoder

时间:2016-01-07 15:46:56

标签: java xml javabeans xstream xmlencoder

我有很多依赖java.beans.XMLEncoder XML格式的XSL转换,我想知道我是否能找到一个性能更好的替代lib。我查看过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转换器以接近格式,但我想知道在我放下那个兔子洞之前是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

如果其他人稍后遇到这种情况,只要您不关心元素的顺序,通过XStream实现就能让您实现目标。你可以做一个更深入的实现,允许你控制元素的顺序,但我最终废弃了这个想法,我只是要处理它,直到我可以重新编写有问题的代码。