使用Jackson从嵌套实例中排除属性

时间:2017-02-16 21:30:26

标签: java json jackson

Jackson提供了@JsonIgnoreProperties注释,可用于从类中的序列化或该类所拥有的字段中排除属性。不幸的是,它不允许排除嵌套属性(即:后代的属性)。

给出以下物体heirarchy:

static class Innermost {
  public String innerField0 = "c";
  public String innerField1 = "d";
}

static class Nested {
  public Innermost next = new Innermost();
}

static class Top {
  @JsonIgnoreProperties({"next.innerField1"}) // no effect
  public Nested next = new Nested();
}

是否有一种机制允许innerField1Top类型的序列化中排除,而不会将其从NestedInnermost类型的序列化中排除?< / p>

理想情况下,InnermostNestedTop的序列化分别如下所示:

{"innerField0":"c","innerField1":"d"}
{"next":{"innerField0":"c","innerField1":"d"}}
{"next":{"next":{"innerField0":"c"}}}

我正在使用Jackson版本2.8.1

0 个答案:

没有答案