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.idCar.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

我想这就是你想要的答案。