【问题标题】:xstream: map object to xml excluding one fieldxstream:将对象映射到 xml,不包括一个字段
【发布时间】:2013-07-02 15:16:42
【问题描述】:

我有一个类可以使用 xstream 映射到 XML。

类有 5 个字段。在这五个字段中,我想要一个不应该映射到 xml 的字段,并且只有四个字段应该映射到 XML。

例如

public class Person {
  private String firstname;
  private String lastname;
  private String phone;
  // ... constructors and methods
}

当这个类被映射时,我想要这样的 XML,即 没有电话号码

<person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
</person>

【问题讨论】:

  • 问题是什么?

标签: java xml xstream


【解决方案1】:

使用经典 Java 代码:

XStreamMarshaller marshaller = ... //Get your XStreamMarshaller
marshaller.getXStream().omitField(Person.class, "phone");

带注释:

@XStreamOmitField
private String phone;

对于第二种情况,您必须调用marshaller.getXStream().autodetectAnnotations(true);marshaller.getXStream().processAnnotations(Person.class); 以确保使用注释。

【讨论】:

  • 这取决于你的版本,因为在 1.4.X 和之前我们可以简单地做 XStream xstream=new XStream(new DomDriver);所以直接使用 xtsream 对象,请问使用 XStreamMarhaller 有什么好处?谢谢!
【解决方案2】:
xstream.omitField(Person.class, "phone");

或在注释中

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2014-10-13
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多