我正在开发一个Spring Boot应用程序。我为一个实体A创建了一个自定义序列化程序,并使用@JsonSerialize(using = CustomSerializer.class)注释注册它。每当我在ResponseEntity中发送A<>调用自定义序列化程序,一切正常,直到这一点。
现在还有另一个API,我需要在其中发送一个A的集合作为响应。但我不能使用相同的序列化程序来构建A的列表,因为响应参数完全不同。我需要为同一个实体再写一个序列化器。
如何为同一个实体配置2个序列化程序?它们应该根据响应发送的对象类型调用,即当我发送A时,应该调用serializer1,当我发送Collection时,应该调用serializer2。 请帮忙!
答案 0 :(得分:0)
一个简单的解决方法是注释集合以使用特定的序列化器来处理内容。 E.g。
@JsonSerialize(using = CustomSerializer.class)
class A {
}
class AList {
@JsonSerialize(contentUsing = AnotherCustomSerializer.class)
private final List<A> list;
}