Mapper写入包装值但无法读取

时间:2012-07-20 16:26:03

标签: jackson

我需要将我的json对象包装成如下所示:

{
    "user" : { "id":1 }
}

而不是

{
    "id":1
}

所以我设置:

mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);

序列化部分工作正常:

mapper.writeValue(writer, user);

但如果我这样做:

User u = mapper.readValue(writer.toString(), User.class);

返回的对象仅包含空字段。我是否需要为阅读包装元素配置其他内容?

此致

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找与SerializationConfig.Feature.WRAP_ROOT_VALUE对应的反序列化配置。它是DeserializationConfig.Feature.UNWRAP_ROOT_VALUE。 (使用Jackson 2+,它是DeserializationFeature.UNWRAP_ROOT_VALUE。)