かなり簡単な質問です。ジャージーを使用して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.
}
_
_ignore=true
_ over getA()
または_@Ignore
_ over getC()
のようなものが機能することを願っていますが、ドキュメントが見つかりません。
無視するフィールド/プロパティの数に応じて、いくつかのオプションがあります。
オプション#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.
}
_
オプション#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.
}
_
詳細情報