我想從Ext JS 4提交表單到使用JSON的Spring 3控制器。我使用的是Jackson 1.9.8的序列化/反序列化,使用Spring內置的Jackson JSON支持。如何處理將空字符串反序列化爲Enum?
我有一個狀態字段,最初爲空記錄在一個新記錄的域對象。當提交表單時它會生成以下JSON(縮小到幾個字段)
{"id":0,"name":"someName","status":""}
提交以下是在服務器日誌中看到後
"nested exception is org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.blah.domain.StatusEnum from String value '': value not one of the declared Enum instance names"
所以看來傑克遜期待有效的枚舉值或根本沒有值,包括空字符串。我該如何解決這個問題,無論是在Ext JS,Jackson還是Spring?
我試圖創建自己的ObjectMapper如
public class MyObjectMapper extends Object Mapper {
public MyObjectMapper() {
configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
}
}
,併發送此作爲一個屬性MappingJacksonMappingView但這並沒有工作。我也嘗試將它發送到MappingJacksonHttpMessageConverter,但沒有奏效。側面的問題:我應該在我自己的ObjectMapper中發送哪一個?
對此提出建議?
我在JIRA開罰單爲: http://jira.codehaus.org/browse/JACKSON-873?focusedCommentId=311657 – 2012-10-17 08:44:32