2012-07-20 19 views
1

我需要換我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); 

返回的對象只包含空字段。我是否需要配置其他內容來讀取包裝元素?

問候

+0

沒關係,對我somereason Eclipse中從來沒有發現該類DeserializationConfig。爲了使它工作,我只使用:mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES,false); \t \t mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE,true); \t \t mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE,true); \t \t mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS,false); – 2012-07-20 17:15:15

回答

2

我認爲你正在尋找的反序列化配置對口SerializationConfig.Feature.WRAP_ROOT_VALUE。這是DeserializationConfig.Feature.UNWRAP_ROOT_VALUE。 (傑克遜2+,這是DeserializationFeature.UNWRAP_ROOT_VALUE。)

+0

是的,tks,由於某種原因日食是從來沒有找到類DeserializationConfig,所以我想我只需要序列化配置部分 – 2012-07-20 17:16:32