Java 可以使用jackson从内部json对象获取字段吗?

Java 可以使用jackson从内部json对象获取字段吗?,java,jackson,Java,Jackson,我有这样的json: { "somethingElse": "foobar", "snils": { "number": "123" } } 和类别: @Data public class Documents { private String snilsNumber; private String somethingElse; } 我可以用注释或其他东西轻松地将json映射到我的类吗?您可以使用“@JsonRootName” @Data

我有这样的
json

{
    "somethingElse": "foobar",
    "snils": {
        "number": "123"
    }
}
和类别:

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

我可以用注释或其他东西轻松地将json映射到我的类吗?

您可以使用“@JsonRootName”

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

您可以使用带有
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
}
类文档{
私有字符串snilsNumber;
私有字符串somethingElse;
@JsonProperty(“snils”)
私家侦探小说(地图品牌){
this.snilsNumber=(字符串)brand.get(“number”);
}
//接球手、二传手、投球手
}
另见:


  • @JsonUnwrapped
    ,但它的工作方式正好相反:有一种工作方式可能会有帮助::EDIT:从链接的问题来看,它似乎通过用
    @JsonUnwrapped
    注释您的
    snilsNumber
    来工作,我已经把问题改得更精确了。你试过了吗?我认为这应该仍然有效@faoxis