转换 spring 端点输出

Convert spring endpoint output

我有几个端点 return class A 的实例,但我希望将它们的输出转换为另一个 class B 不修改方法。

我研究了 spring 转换器的主题,以及如何将它们应用于格式化输入路径变量或参数并将它们转换为其他 classes,但我找不到转换的方法端点的输出。

可以用转换器来实现吗?还是我缺少更好的现有解决方案?

您可以实施自定义 JsonSerializer。此序列化程序采用 A 的实例,而不是序列化它,而是创建 B 的实例,生成相应的 JSON 表示,并将此 JSON 发送到客户端。

@JsonComponent
public final class MyJsonSerializer extends JsonSerializer<A> {

    @Override
    public void serialize(A a, JsonGenerator jsonGen, SerializerProvider provider) throws IOException {
        B b = new B();
        jsonGenerator.writeObject();
    }
}