2013-04-22 29 views
2

我有個問題:會有三個孩子班的學生,老師,家長。spring rest @requestbody得到子對象

public class Person implements Serializable{ 

private String name; 

private String address;} 

學生:

public class Student extends Person { 

private String cardNo; 

}

彈簧安置:

@RequestMapping(method = RequestMethod.POST, value = "/create") 
@ResponseBody 
public CemeteryRestResponse<Boolean> create(
     @RequestBody Person person) throws Exception {.....} 

我想用一個其他方法來創建這三個角色。 但在客戶端後學生爲JSON它拋出一個異常:

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "cardNo" 

在此先感謝!

+0

如果您只想要名稱和地址字段,並且不關心cardNo字段,請將此Jackson註釋添加到'Person'類:'@JsonIgnoreProperties(ignoreUnknown = true)' – 2013-04-22 01:50:13

+0

Thanks.but will be three孩子班學生,老師,家長。我想用一種休息方法來創造這三個角色。 – wilson 2013-04-22 02:12:22

回答

0

傑克遜圖書館支持polymorphic type handling這就是它看起來你在之後。您應該查找的具體註釋是@JsonTypeInfo註釋,您應該將其應用於基類(Person類)。

此功能是在1.5版本中添加的。

+0

謝謝! 我申請@JSONTypeInfo基類是這樣的: @JsonTypeInfo(使用= JsonTypeInfo.Id.CLASS,包括= JsonTypeInfo.As.PROPERTY,財產= 「@類」) 公共類Person實現Serializable 但它拋出新的異常:org.codehaus.jackson.map.JsonMappingException:意外的標記(END_OBJECT),預計FIELD_NAME:缺少屬性'@class' – wilson 2013-04-22 03:26:44

相關問題