objectmapper 仅序列化特定字段
objectmapper only serialize specific fields
我想编写一个仅序列化具有给定隐式字段名称的 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
}
}
}
另一个例子,给定列表=[Car.type]
那我应该得到
{
Car:{
type: xxx
}
}
我目前正在尝试覆盖 serializeAsField 方法来检查字段是否在给定列表中,但这里的问题是我不知道深度,然后我无法正确比较当前字段和列表。
我怎样才能实现它?还有其他方法吗?
用 @JsonIgnore
注释标记不需要的字段。
即时过滤
这是一篇 Baeldung 文章,讨论了使用过滤器来
确定哪些字段被序列化:
https://www.baeldung.com/jackson-serialize-field-custom-criteria
我想这就是你想要的答案。
我想编写一个仅序列化具有给定隐式字段名称的 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
}
}
}
另一个例子,给定列表=[Car.type]
那我应该得到
{
Car:{
type: xxx
}
}
我目前正在尝试覆盖 serializeAsField 方法来检查字段是否在给定列表中,但这里的问题是我不知道深度,然后我无法正确比较当前字段和列表。
我怎样才能实现它?还有其他方法吗?
用 @JsonIgnore
注释标记不需要的字段。
即时过滤
这是一篇 Baeldung 文章,讨论了使用过滤器来
确定哪些字段被序列化:
https://www.baeldung.com/jackson-serialize-field-custom-criteria
我想这就是你想要的答案。