モデルをさまざまな言語にローカライズするために抽象クラスを使用しています。これは私が設定した継承チェーンです:
//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;
...
}
これはすべて、私のJersey JSON Webサービスで正常に機能しますが、1つだけ例外があります。ローカライズされたプロパティのすべてのインスタンスにen
追加のフィールドが含まれていますtype
。
Restaurant
JSON:
{
"en": {
"type": "localizedRestaurantData",
"address": "1234 Main St.",
"name": "Tacos Folie"
},
...
}
このtype
フィールドは、オブジェクトを解析するときにジャクソンによっても必要とされるように思われるため、望ましくなく、望ましくありません。@JsonIgnoreProperties({"type"})
コードを追加しましたが、成功しませんでした。