编辑:此解决方案仅适用于杰克逊 <2.0
对于您的情况,有一个简单的解决方案:
- 您需要使用注释模型类
@JsonRootName(value = "user")
; - 您需要使用
om.configure(Feature.UNWRAP_ROOT_VALUE, true);
(针对1.9)和om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
(针对版本2)配置映射器。
而已!
@JsonRootName(value = "user")public static class User { private String name; private Integer age; public String getName() { return name; } public void setName(final String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(final Integer age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; }}ObjectMapper om = new ObjectMapper();om.configure(Feature.UNWRAP_ROOT_VALUE, true);System.out.println(om.readValue("{ "user": { "name":"Sam Smith", "age":1 }}", User.class));这将打印:
User [name=Sam Smith, age=1]



