给出一个班级
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class User {
public int id;
public User other;
}
如果Jackson匹配之前看到的User
对象,它将使用ObjectIdGenerator
输出id而不是实际对象。
示例输出:
{
"id": 1257,
"other" : {
"id": 411,
"other": 1257
}
}
但是,如果触发了对象ID,我想使用不同的属性名称,因此输出看起来像
{
"id": 1257,
"other" : {
"id": 411,
"otherRef": 1257
}
}
自定义序列化程序会实现此目的吗?我可以找到很多自定义序列化程序更改属性值的示例,但没有基于属性值更改属性名称的示例。
答案 0 :(得分:0)
您可以使用@JsonGetter
执行此操作。使用@JsonIgnore
标记字段,然后创建名为getOtherRef
的方法,标记为@JsonGetter
。