2013-03-20 131 views
0

我知道spring 3.2會將json轉換爲帶有RequestBody註解的對象列表。它不適合我。我可以使用常規的Jackson對象映射器來完成它。只是檢查是否有人可以幫助我..下面是我的JSON和控制器方法Spring 3.2 Jackson2(400壞請求)

[{"uniqueJqGridId":"1","fileProcessingDate":"2012-09-24","createdTimeStamp":"1348569180191","csoCode":"A-A ","cycleDate":"2012-09-24","accountDate":"2012-10-02","originName":"NCAA      ","amount":"-95996.33","policyNumber":"C    ","transactionCode":"PCH","id":"1"}] 

@RequestMapping(method = RequestMethod.POST, value = "/washTransactions", headers="Content-Type=application/json") 
public @ResponseBody RequestStatus washTransactions(@RequestBody List<ReconPolicy> policiesToWash)throws Exception{ 
    reconciliationService.applyWashToTransactions(policiesToWash,getCurrentUser()); 
    return new RequestStatus(true); 
} 

回答

1

您正面臨Java的類型擦除問題。 Spring不能將確切的類類型傳遞給方法,所以它實際上得到了類似List<?> policiesToWash的東西。

一種解決方法是創建像

public class WashablePolishes extends ArrayList<ReconPolicy> 

這樣彈簧一類將保留通過超類型鏈的類型。

,或者你可以爲你回答Varun的你的方法改爲

public @ResponseBody RequestStatus washTransactions(@RequestBody ReconPolicy[] policiesToWash) throws Exception {...} 
+0

thx,你解決了我很多時間。 – hiway 2014-04-16 04:22:32

0

感謝。從Spring 3.2開始,沒有類型擦除問題。在啓用spring調試後發現問題,我發現它在某些未知屬性上失敗,我不得不用@JsonIgnoreProperties註釋我的類。現在它可以工作。