将 JSON 子对象属性绑定到 Jackson 中的 Java 对象字段中

2022-09-02 01:36:29

我有一个JSON对象,比如说:

{
  "foo": {
    "bar": 1
  },
  "baz": 2
}

我想把它绑定到一个Java对象中,比如:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
  private int bar;
  @JsonProperty("baz")
  private int baz;
}

如何将 从 JSON 的值设置为 Java 对象中的字段?foo.barbarFoo

我尝试过用 注释字段,但它不能像那样工作。@JsonProperty("foo.bar")


答案 1

这并不完美,但这是我能想到的最优雅的方式。

@JsonProperty("foo")
public void setFoo(Map<String, Object> foo) {
  bar = (Integer) foo.get("bar");
}

答案 2

据我所知,没有自动化功能,但这是一个经常被要求的功能;有这个Jira RFE:http://jira.codehaus.org/browse/JACKSON-132 听起来像你正在寻找的。