抽象クラスを使用してモデルをさまざまな言語にローカライズしています。JSON JAXBがJerseyを使用して多態型の型プロパティを無視するようにします
//Base model, contains localized fields
public class Restaurant extends LocalizedModel<LocalizedRestaurantData>{
...
}
//Abstract class to support localized fields for all my models
@XmlRootElement
public abstract class LocalizedModel<T extends LocalizedData> {
private T en;
public T getEn() {
return en;
}
public void setEn(T en) {
this.en = en;
}
...
}
//Implementation of the localized fields for the restaurant class.
@XmlRootElement
public class LocalizedRestaurantData extends LocalizedData{
protected String name;
protected String address;
...
}
このすべては、一つのことを除いて、私のジャージーJSON Webサービスで正常に動作します:これは私が設定した継承チェーンでローカライズされたプロパティのすべてのインスタンスen
はtype
を追加フィールドが含まれています。
Restaurant
JSON:
{
"en": {
"type": "localizedRestaurantData",
"address": "1234 Main St.",
"name": "Tacos Folie"
},
...
}
このtype
フィールドがオブジェクトを解析するとき、また、ジャクソンによって必要とされているようだ、特に以来望ましくないと望ましくありません。私は@JsonIgnoreProperties({"type"})
を自分のコードに追加しました。