我有一个具有如下属性的类。
Class AnimalResponse {
@JsonProperty("animals")
private List<Animal> animals = new ArrayList<>();
@JsonProperty("someOtherAttributes")
private List<someOtherAttribute> someOtherAttributes= new ArrayList<>();
}
Animal.class
如下所示:
Class Animal {
@JsonProperty("id")
private int id;
@JsonProperty("name")
private String name;
@JsonProperty("height")
private float height;
}
我不想序列化Animal.class
内的属性height
。
因此,我执行以下两个步骤:
1.我创建了一个mixIn,忽略高度
公共接口高度忽略混合输入{
@JsonIgnore
String getHeight();
}
1.在序列化期间,我添加了这个mixin。
这个方法是一个新的对象Map器,它是一个类的对象Map器。
这个很好用。
**Note: Animal.class is used by other classes.**
我也不想在Swagger UI中显示此height
。如何执行此操作?
我不能将@ApiModelProperty(hidden=true)
添加到height
,因为Animal.class
被其他类使用,它们希望它在Swagger UI中可见。因此,我只想在Swagger UI中将它从AnimalResponse
中删除。我该如何操作?
1条答案
按热度按时间2izufjch1#
创建两个不同的
DTO
类。一个带有height
字段,另一个不带有height
字段。这是因为对于一个类,swagger用户将使用一个链接两次--您可以通过展开swagger UI页面底部的“模型”块来查看这一点。