我是Sping Boot 的新手,现在正在编写一个使用一些restful API的应用程序。然而,API在不同的HTTP请求中接受不同的字段。现在我已经使用了resttemplate的exchange()方法(HttpMethod.GET)将其转换为POJO用户。但是,在更新时,(HttpMethod.PUT),不同的类属性需要被序列化。(HttpMethod.POST),需要另一组不同的字段。我已经尝试使用Jackson的注解来忽略一些字段,但它们是静态的。我需要一种方法来决定哪些字段根据我使用的HTTP方法进行序列化和非序列化?
1条答案
按热度按时间rryofs0p1#
Jackson本身就有一个@JsonView的概念。你可以用这个注解来标记字段,当(反)序列化时,你可以告诉它只处理特定视图的字段,例如
ObjectMapper#writerWithView()
。虽然SpringMVC does support JsonViews,我不认为RestTemplate做。即使它做了,它可能只是创建两个不同的类,要么相互扩展,要么更好地使用组合与@JsonUnwrapped。严重依赖视图可能会导致更复杂/脏的类。