当前我正在使用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。这解决了我的问题。 –