- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须将组织类型的一组已排序对象转换为 XML 文件。所述类型除了原始类型和 String 对象之外还包含其他引用类型对象。
以下是组织字段:
String orgName;
double capital;
Individual generalDirector;
Investor investor;
接下来是投资者:
Individual name;
double sharesPercentage;
最后是个人:
String firstName;
String lastName;
如您所见,组织和投资者都包含对个人类型对象的引用。
问题是,我需要在 Organization 对象的 XML 中显示 firstName 和 lastName,并且只需要 lastName> 对于 Investor 对象,因此完全省略 firstName 是行不通的。
我还想从输出中省略 <'generalDirector'> 和 <'investor'> 标签,但将它们的内容保留在单独的标签中,如下所示:
<organization>
<orgName>Dummy Solutions</orgName>
<capital>50000</capital>
<dirFirstName>Jacob</dirFirstName>
<dirLastName>Smith</dirLastName>
<investor>
<lastName>Johnson</lastName>
<sharePercentage>5.13</sharePercentage>
</investor>
</organization>
但是 XStream 通过以下方式转换它:
<organization>
<orgName>Dummy Solutions</orgName>
<generalDirector>
<firstName>Jacob</firstName>
<lastName>Smith</lastName>
</generalDirector>
<capital>50000</capital>
<investor>
<name>
<firstName>NotSpecified</firstName>
<lastName>Johnson</lastName>
</name>
<sharesPercentage>5.13</sharesPercentage>
</investor>
</organization>
如何去掉 generalDirector 和 Investor 的 name 标签而不删除其内容?我知道有一种方法可以为集合做到这一点,但是引用对象字段呢?
有没有办法显示组织中包含的个人的firstName和lastName,但不显示投资者中的firstName和lastName?
最佳答案
事实证明,按照我最初想象的方式去做是不可能的。
但是,我的问题的解决方案以 custom Converter 的形式出现。 ,它实现了 XStream 包中的 Converter 接口(interface)。在这样的转换器中,我们可以指定一种方法来序列化/反序列化特定类的对象。
这样做后,解决方案就像在当前 XStream 实例中注册指定的转换器一样简单,如下所示:
XStream xstream = new XStream();
xstream.registerConverter(new YourCustomConverter());
关于java - 是否可以使用 XStream 将对象字段隐式添加到 XML 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640930/
我是一名优秀的程序员,十分优秀!