java.beans.XMLEncoder 的直接替换
Drop-in replacement for java.beans.XMLEncoder
我有很多依赖于 java.beans.XMLEncoder
XML 格式的 XSL 转换,我想知道是否可以找到性能更好的直接替换库。我看过 XStream 但它的序列化格式不同。
我正在寻找替换它的方法,因为我正在使用具有 XMLEncoder
分叉版本的遗留代码库,我想 return 它更标准,但是java.beans.XMLEncoder
性能更差。
对于 class 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 转换器来近似格式,但我想知道在进入那个兔子洞之前是否有更简单的解决方案。
万一其他人以后遇到这个问题,只要您不关心元素的顺序,通过 XStream 实现就可以。您可能会做一个更深入的实现,允许您控制元素的顺序,但我最终放弃了这个想法,我只是打算处理它,直到我可以重新编写有问题的代码。
我有很多依赖于 java.beans.XMLEncoder
XML 格式的 XSL 转换,我想知道是否可以找到性能更好的直接替换库。我看过 XStream 但它的序列化格式不同。
我正在寻找替换它的方法,因为我正在使用具有 XMLEncoder
分叉版本的遗留代码库,我想 return 它更标准,但是java.beans.XMLEncoder
性能更差。
对于 class 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 转换器来近似格式,但我想知道在进入那个兔子洞之前是否有更简单的解决方案。
万一其他人以后遇到这个问题,只要您不关心元素的顺序,通过 XStream 实现就可以。您可能会做一个更深入的实现,允许您控制元素的顺序,但我最终放弃了这个想法,我只是打算处理它,直到我可以重新编写有问题的代码。