我試圖使用Gson序列化/反序列化。我不希望超類(這是抽象的)被考慮,問題是我沒有訪問超類代碼。我該如何讓gson排除我的對象的超類?
我試過用ExclusionStrategy
,但它沒有奏效。
private class SuperClassExclusionStrategy implements ExclusionStrategy {
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return clazz.equals(SuperClass.class);
}
@Override
public boolean shouldSkipField(FieldAttributes field) {
return false;
}
}
我該如何解決這個問題?
編輯:
我需要在超類中的字段被忽略,這是因爲我得到這個錯誤:MyClass declares multiple JSON fields named
。 我無法更改衝突的字段名稱。
解決方案:
與以下策略解決:
private static class SuperClassExclusionStrategy implements ExclusionStrategy {
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
public boolean shouldSkipField(FieldAttributes field) {
return field.getDeclaringClass().equals(MySuperClass.class) && field.getName()
.equals("id");
}
}
好工作...... –