0

Spring 3.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);
}
4

2 に答える 2

1

Javaの型消去の問題に直面しています。Springは正確なクラス型をメソッドに渡すことができないため、実際にはのようなものを取得していList<?> policiesToWashます。

回避策は、次のようなクラスを作成することです。

public class WashablePolishes extends ArrayList<ReconPolicy>

このようにして、スプリングはスーパータイプチェーンを通してタイプを保持します。

または、メソッドを次のように変更できます

public @ResponseBody RequestStatus washTransactions(@RequestBody ReconPolicy[] policiesToWash) throws Exception {...}
于 2013-03-20T20:29:24.750 に答える
0

ヴァルンさん、お返事ありがとうございます。Spring 3.2以降、型消去の問題はありません。春のデバッグを有効にした後に問題が見つかりました。いくつかの不明なプロパティで失敗していることがわかったので、@JsonIgnoreProperties でクラスに注釈を付ける必要がありました。今では動作します。

于 2013-03-21T12:36:32.423 に答える