我想写一个函数,它只序列化具有给定隐式字段名的POJO。
例如,
class Car{
public int id;
public String type;
public Manufacture manufacture;
}
Class Manufacture{
public int id;
public String name;
}
如果我想用一个给定的列表序列化一个Car对象(例如:(Car.id,Car.Manufacture.name](然后我想得到
{
Car:{
id: xxx,
Manufacture: {
name: xxx
}
}
}
另一个例子,给定list = [Car.type
那么我应该得到
{
Car:{
type: xxx
}
}
我正在尝试覆盖serializeAsField方法来检查字段是否在给定的列表中,但这里的问题是我不知道深度,那么我就不能正确地将当前字段与列表进行比较。
我怎样才能做到呢?还有别的办法吗?
用@JsonIgnore
注释标记不需要的字段。
实时过滤
这是一篇讨论使用过滤器来确定哪些字段被序列化:https://www.baeldung.com/jackson-serialize-field-custom-criteria
我怀疑这就是你想要的答案。