【发布时间】:2016-06-17 03:37:51
【问题描述】:
我正在开发一个 Spring Boot 应用程序,我想根据 JsonView 过滤我的一些端点响应。我正在遵循
中列出的模式https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring
但是响应总是包含我的响应对象的全部属性,而不是我期望的子集。
我的(简化的)代码:
@RestController
@EnableAutoConfiguration
@ComponentScan
public class Controller {
@RequestMapping("/")
@JsonView(Responder.OnlyMyName.class)
Responder home() throws JsonProcessingException {
Responder responder = new Responder();
return responder
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Controller.class, args);
}
}
响应者
public class Responder {
@JsonView(OnlyMyName.class)
public String name="My name";
@JsonView(Everything.class)
public String value="My value";
public class OnlyMyName{}
public class Everything extends OnlyMyName{}
}
响应如下所示:{"name":"My name","value":"My value"},而我希望它是 {"name":"My name"}。
显然我遗漏了一些东西,但我无法弄清楚它可能是什么。请帮忙!
【问题讨论】:
-
你可能需要
@ResponseBody注解 -
@ResponseBody使用@RestController时是隐式注释
标签: java spring spring-mvc jackson