单个 @RestController 端点的自定义序列化

2024-01-12

有没有一种方法(最好是某种类型的注释)为单个端点注册自定义序列化器@RestController?延伸豆子并放置一个@JsonSerialize这将是一个选项,但这需要一个非常无用的新 bean 类。我尝试了以下方法:

@JsonSerialize(using = CustomSerializer.class)
@RequestMapping(value = "/some_endpoint/", method = RequestMethod.GET)
public SomeType someEndpoint() {
    return someObject;
}

But the @JsonSerialize在这种情况下,注释对 Spring 似乎没有任何意义。有没有其他选择,或者额外的 bean 类是我唯一的选择?


您可以使用@JsonView(View.Summary::class)在您想要添加或忽略的属性中以及在您想要应用该视图的方法中,例如:

public class View {
    public interface Summary
} 

public class A{
@JsonView(View.Summary.class)
private String serialized = "",
private String notSerialized = ""}

然后在控制器中:

@JsonView(View.Summary.class)
@GetMapping("/")
@ResponseBody
public A getA(){
    return A() 
}

如果你想反转Json视图(序列化没有视图的属性)。您可以添加以下属性:spring.jackson.mapper.default-view-inclusion=true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单个 @RestController 端点的自定义序列化 的相关文章

随机推荐