Spring Boot

时间:2017-06-15 14:05:47

标签: json serialization spring-boot jackson json-serialization

我正在开发一个Spring Boot应用程序。我为一个实体A创建了一个自定义序列化程序,并使用@JsonSerialize(using = CustomSerializer.class)注释注册它。每当我在ResponseEntity中发送A<>调用自定义序列化程序,一切正常,直到这一点。

现在还有另一个API,我需要在其中发送一个A的集合作为响应。但我不能使用相同的序列化程序来构建A的列表,因为响应参数完全不同。我需要为同一个实体再写一个序列化器。

如何为同一个实体配置2个序列化程序?它们应该根据响应发送的对象类型调用,即当我发送A时,应该调用serializer1,当我发送Collection时,应该调用serializer2。 请帮忙!

1 个答案:

答案 0 :(得分:0)

一个简单的解决方法是注释集合以使用特定的序列化器来处理内容。 E.g。

@JsonSerialize(using = CustomSerializer.class)
class A {
}

class AList {
    @JsonSerialize(contentUsing = AnotherCustomSerializer.class)
    private final List<A> list;
}