Jaxb 在编组为XML/JSON时,是否可以使用Jersey/JAX-RS注释跳过类成员?

Jaxb 在编组为XML/JSON时,是否可以使用Jersey/JAX-RS注释跳过类成员?,jaxb,jersey,jax-rs,Jaxb,Jersey,Jax Rs,这个问题很简单。我正在使用Jersey构建一个休息系统。如果我有一个类,其值需要在处理过程中使用,但不希望在封送该类时作为XML或JSON输出的一部分发送,那么有没有办法忽略它?比如: @XmlRootElement(name=“example”) 课例{ 私人INTA; 私有字符串b; 私有对象c; @XmlElement(忽略=true) public int getA(){return a;} @XmlElement 公共字符串getB(){return b;} @忽略 公共对象getC(

这个问题很简单。我正在使用Jersey构建一个休息系统。如果我有一个类,其值需要在处理过程中使用,但不希望在封送该类时作为XML或JSON输出的一部分发送,那么有没有办法忽略它?比如:

@XmlRootElement(name=“example”)
课例{
私人INTA;
私有字符串b;
私有对象c;
@XmlElement(忽略=true)
public int getA(){return a;}
@XmlElement
公共字符串getB(){return b;}
@忽略
公共对象getC(){return c;}
…//设置器、构造函数等。
}

我希望类似于
getA()
上的
ignore=true
getC()
上的
@ignore
这样的方法可以工作,但我找不到任何文档。

根据要忽略的字段/属性的数量,有两个选项

选项#1-
@xmltransive

如果您希望忽略不到一半的属性,那么我建议使用
@xmltransive
注释它们。这将从XML映射中排除它们

@XmlRootElement
课例{
私人INTA;
私有字符串b;
私有对象c;
@XmlTransient
public int getA(){return a;}//未映射
公共字符串getB(){return b;}//MAPPED
@XmlTransient
公共对象getC(){return c;}//未映射
…//设置器、构造函数等。
}
选项2-
@xmlacessortype(xmlacesstype.NONE)

如果希望忽略一半以上的属性,我建议在类型级别使用
@xmlacessortype
注释来设置
xmlacesstype.NONE
。这将导致仅将带注释的属性映射到XML

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
课例{
私人INTA;
私有字符串b;
私有对象c;
public int getA(){return a;}//未映射
@XmlElement
公共字符串getB(){return b;}//MAPPED
公共对象getC(){return c;}//未映射
…//设置器、构造函数等。
}
了解更多信息


谢谢你让我开心