當前我正在使用Gson將Java對象序列化爲JSON。 我試圖跳過一個類中的字段,但不在另一個類中。Gson:使用無註釋排除特定類的字段 - 2
示例代碼:
Class A {
var a;
var b;
}
Class B {
var a;
var c;
}
Class C {
class A;
class B;
}
我要排除一個只一個,但不是在乙。我無法在域上放置註釋,因爲對象不屬於我或者手動訪問對象A並刪除a。我正在尋找一些通用的方法。
類似的問題:Gson: How to exclude specific fields from Serialization without annotations 哪個答案由Nishant提供符合我的想法。但我覺得解決方案並不完全正確,因爲下面的條件是錯誤的。
f.getDeclaringClass()==ç
GetDeclaringClass被返回類不是父類的類型。
我用Gson寫了類似的自定義排除策略。隨着排斥策略,我可以做以下
shouldSkipClass(類)
shouldSkipField(fieldAttributes)。
但我期待這兩個組合都跳過,如果這個fieldAttributes只存在於提供的類中。
shouldSkipFieldUnderClass(類,fieldAttributes)
是否有任何其他的方法來達到同樣的?或者我在上面做錯了什麼?請給我建議使用Gson跳過特定課程中的字段。
道歉,找到了我的問題。我一直在使用getDeclaredClass而不是getDeclaringClass。這解決了我的問題。 –