Jaxb 在编组为XML/JSON时,是否可以使用Jersey/JAX-RS注释跳过类成员?
这个问题很简单。我正在使用Jersey构建一个休息系统。如果我有一个类,其值需要在处理过程中使用,但不希望在封送该类时作为XML或JSON输出的一部分发送,那么有没有办法忽略它?比如: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(
@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;}//未映射
…//设置器、构造函数等。
}
了解更多信息