可以使用杰克逊从内部json对象获取字段吗?

时间:2019-02-19 12:27:54

标签: java jackson

我这样json

{
    "somethingElse": "foobar",
    "snils": {
        "number": "123"
    }
}

和班级:

@Data
public class Documents {
    private String snilsNumber;
    private String somethingElse;
}

我可以轻松地将带有注释或其他内容的json映射到我的班级吗?

2 个答案:

答案 0 :(得分:1)

您可以使用'@JsonRootName'

@Data
 @JsonRootName(value = "snils")
  @JsonIgnoreProperties(unknown = true)
 public class Documents {
         private String number;
  }

答案 1 :(得分:0)

您可以使用一种额外的带有JsonProperty批注的更新方法来反序列化它。

class Documents {

    private String snilsNumber;
    private String somethingElse;

    @JsonProperty("snils")
    private void unpackSnils(Map<String, Object> brand) {
        this.snilsNumber = (String) brand.get("number");
    }

    // getters, setters, toString
}

另请参阅:

  1. Jackson nested values
  2. unwrap inner json object using jackson