我的问题其实很简单,有没有办法忽略某些库或框架已定义的类中的属性(例如org.springframework.core.io.Resource
)?我可以在我自己的类中按@JsonIgnore
来调整字段,但是如果我不能更改类本身,那么如何做同样的事情呢?
我想要这个,因为我正在返回ResponseEntity<Resource>
并且Swagger-UI向我显示资源的所有嵌套字段,如
"url": {
"authority": "string",
"content": {},
"defaultPort": 0,
"file": "string",
"host": "string",
....
}
我正在使用Spring Fox和Spring MVC(没有Spring Boot),这两个版本都是最新版本。我现在也没有注释任何字段,我将所有工作留给Swagger。
答案 0 :(得分:2)
不清楚你是想忽略这个类型本身还是只想忽略它上面的某些属性?
如果你想做后者就是修改你无法控制的类的表示,那么using mixins in jackson应该可以解决你的问题。然而,这可能不是你想要做的。我的猜测是你希望它像它应该的那样进行序列化,但是你希望它在swagger服务描述中只是以不同的方式呈现。
因此,在您的特定情况下,我建议您创建一个替代类型规则as described here,用ResponseEntity<Resource<T>
替换T
代替您服务中的所有T&#。链接中的示例适用于Collection<T>
,但它应该引导您朝着正确的方向前进。