可以使用@JsonIgnoreProperties
作为类级别注释来忽略类的属性。但是,假设您有以下两个类别;
class Client {
@JsonIgnoreProperties ("owner")
List<Vehicle> vehicles;
}
Class Vehicle {
@JsonIgnoreProperties ("vehicles")
Client owner;
}
我认为这会奏效。但显然JsonIgnoreProperties
在列表中不起作用。我想它会检查java.util.List
属性òwner`但它找不到它。
我想要的是一个基于首先检索对象的过滤器。如果首先检索到Vehicle
,则显示所有者但不显示客户端所拥有的vehicles
。如果首先检索Client
,则显示vehicles
但不显示每个Vehicle
的所有者。这也避免了无休止的递归。
我的问题是如何忽略owner
列表Vehicle
中vehicles
对象中的属性Client
?
修改
使用@Kushan回答。
@JsonIgnoreProperties ("owner")
Class Vehicle {
Client owner;
}
这将始终忽略owner
信息。我打算得到的是,如果我有Client
个对象并且我得到vehicles
,那么我不需要owner
生成的Vehicle
信息。我已经拥有Client
个对象。但是,如果我有一个Vehicle
对象,我将需要它owner
属性,不包括vehicles
所有的Client
。
答案 0 :(得分:0)
我不确定您是否被说过,所以我描述了在测试/示例部分中序列化数据时过滤数据的所有可能功能。例如:@JsonIgnore
,@JsonIgnoreProperties
,{{1 {}},@JsonIgnoreType
,按@JsonView
/ @JsonFilter
序列化数据。您可以选择一个您喜欢的数据。
mixin