Ken*_*ows 21 jax-rs jaxb jersey
非常直截了当的问题.我正在使用Jersey构建一个REST系统.如果我有一个具有值的类,我需要在处理期间使用但不希望在类被封送时作为XML或JSON输出的一部分发送,有没有办法忽略它?就像是:
@XmlRootElement(name="example")
class Example {
private int a;
private String b;
private Object c;
@XmlElement(ignore=true)
public int getA() { return a; }
@XmlElement
public String getB() { return b; }
@Ignore
public Object getC() { return c; }
... //setters, constructors, etc.
}
Run Code Online (Sandbox Code Playgroud)
我希望像ignore=trueover getA()或@Ignoreover 这样的东西getC()能起作用,但我找不到任何文档.
bdo*_*han 34
根据您想要忽略的字段/属性数量,有几个选项.
选项1 - @XmlTransient
如果你想要忽略不到一半的属性,那么我建议用它来注释它们@XmlTransient.这将把它们从XML映射中排除.
@XmlRootElement
class Example {
private int a;
private String b;
private Object c;
@XmlTransient
public int getA() { return a; } // UNMAPPED
public String getB() { return b; } // MAPPED
@XmlTransient
public Object getC() { return c; } // UNMAPPED
... //setters, constructors, etc.
}
Run Code Online (Sandbox Code Playgroud)
选项#2 - @XmlAccessorType(XmlAccessType.NONE)
如果您想要忽略超过一半的属性,我建议您使用@XmlAccessorType类型级别的注释进行设置XmlAccessType.NONE.这将导致仅将带注释的属性映射到XML.
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
class Example {
private int a;
private String b;
private Object c;
public int getA() { return a; } // UNMAPPED
@XmlElement
public String getB() { return b; } // MAPPED
public Object getC() { return c; } // UNMAPPED
... //setters, constructors, etc.
}
Run Code Online (Sandbox Code Playgroud)
欲获得更多信息
| 归档时间: |
|
| 查看次数: |
16049 次 |
| 最近记录: |