gpt4 book ai didi

java - Xstream:隐式忽略所有字段

转载 作者:数据小太阳 更新时间:2023-10-29 02:49:31 27 4
gpt4 key购买 nike

我如何告诉 Xstream 仅序列化明确注释的字段并忽略其余字段?

我正在尝试序列化一个 hibernate 持久对象,并且所有与代理相关的字段都被序列化,这在我的 xml 中是不想要的。
例如

<createdBy class="com..domain.Users " reference="../../values/createdBy"/>

不是我想要在我的 xml 中添加的内容。

编辑:我觉得我没把这个问题说清楚。一个类可能继承自一个基类,而我无法控制(如在 hibernate 的情况下)基类属性。

public class A {
private String ShouldNotBeSerialized;
}

public class B extends A {
@XStreamAlias("1")
private String ThisShouldbeSerialized;
}

在这种情况下,当我序列化 B 类时,基类字段 ShouldNotBeSerialized 也将被序列化。这不是我想要的。在大多数情况下,我无法控制 A 类。

因此,我想默认省略所有字段,并仅序列化我明确指定注释的字段。我想避免什么 GaryF正在做,我需要明确指定我需要省略的字段。

最佳答案

您可以 omit fields使用@XstreamOmitField 注释。直接来自手册:

@XStreamAlias("message")
class RendezvousMessage {

@XStreamOmitField
private int messageType;

@XStreamImplicit(itemFieldName="part")
private List<String> content;

@XStreamConverter(SingleValueCalendarConverter.class)
private Calendar created = new GregorianCalendar();

public RendezvousMessage(int messageType, String... content) {
this.messageType = messageType;
this.content = Arrays.asList(content);
}
}

关于java - Xstream:隐式忽略所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com