我知道Spring3.2确实会将json转换为带有RequestBody注释的对象列表。这对我不起作用。我可以使用常规的Jackson对象映射器来做这件事。我只是想看看有没有人能帮我。下面是我的json和控制器方法
[{"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);
}发布于 2013-03-21 04:29:25
您正面临Java的类型擦除问题。Spring不能将确切的类类型传递给该方法,因此它实际上得到了类似于List<?> policiesToWash的东西。
解决方法是创建一个类,如下所示
public class WashablePolishes extends ArrayList<ReconPolicy>这样,spring将通过超级类型链保留类型。
或者您可以将您的方法更改为
public @ResponseBody RequestStatus washTransactions(@RequestBody ReconPolicy[] policiesToWash) throws Exception {...}发布于 2013-03-21 20:36:32
谢谢你的回复,Varun。从Spring3.2开始,没有类型擦除问题。我在启用spring调试后发现了这个问题,我发现它在一些未知的属性上失败了,我不得不用@JsonIgnoreProperties注释我的类。现在它起作用了。
https://stackoverflow.com/questions/15532323
复制相似问题