gpt4 book ai didi

java - Spring Boot 中的 JsonView 不过滤响应

转载 作者:行者123 更新时间:2023-12-02 03:52:18 25 4
gpt4 key购买 nike

我正在开发 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": “我的名字”}

显然我错过了一些东西,但我不知道它可能是什么。请帮忙!

最佳答案

Jackson 参数 MapperFeature.DEFAULT_VIEW_INCLUSION 应设置为 false。

类似这样的事情

final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);

关于java - Spring Boot 中的 JsonView 不过滤响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com