Jackson annotation to override the one in parent c

2019-07-23 15:09发布

I would like all my objects to have an ID and I wish to serialise it for some child class but not for some others

for example:

public class A {
  protected Long id;
  ..getter and setter
}

public class B extends A {

  @Override
  @JsonIgnore
  public Long getId() {..}

  @Override
  @JsonIgnore
  public void setId(Long id) {..}

}

public class C extends B {

  @Override
  @JsonInclude
  public Long getId() {..}

  @Override
  @JsonInclude
  public void setId(Long id) {..}
}

public class Test {

  Set<C> tests ...
  ..getter setter
}

I have tried serialising Test but the JSON string doesn't include the IDs If I remove the JsonIgnore from B then in that case the Ids are there.

Is there a way with jackson to archive this?

1条回答
何必那么认真
2楼-- · 2019-07-23 15:54

Use

@JsonIgnore(false)

instead of

@JsonInclude
查看更多
登录 后发表回答