2016-01-14 3 views
11

POSTメソッドの要求本文に値のリストを渡す必要がありますが、400: Bad Request errorがあります。Spring MVCを使ったポストメソッドでリスト<String>を渡すには?

@RequestMapping(value = "/saveFruits", method = RequestMethod.POST, 
    consumes = "application/json") 
@ResponseBody 
public ResultObject saveFruits(@RequestBody List<String> fruits) { 
    ... 
} 

私が使用していますJSONは次のとおりです:あなたは間違っているJSONを使用している{"fruits":["apple","orange"]}

+0

オレンジの後に見積もりを閉じましたか、スタック上でタイプミスですか? '{" fruits ":[" apple "、" orange "]}' – wcislo

+0

はい私はしました。それはちょうど私のサンプルコードのコピーの貼り付けエラーでした。依然として不正なリクエストエラーが発生しています – user2359634

+0

おそらくこれがあなたを傷つける可能性がありますhttp://stackoverflow.com/a/25523151/1793718 – Lucky

答えて

24

以下は私のサンプルコードです。あなたはそのフォームでJSONを受け入れなければならない場合

["orange", "apple"] 

{"fruits":["apple","orange"]} 

をあなたはラッパーオブジェクトを作成する必要があります:

public class FruitWrapper{ 

    List<String> fruits; 

    //getter 
    //setter 
} 
この場合、あなたはこのようになりますJSONを使用する必要があります

となり、コントローラメソッドは次のようになります。

@RequestMapping(value = "/saveFruits", method = RequestMethod.POST, 
    consumes = "application/json") 
@ResponseBody 
public ResultObject saveFruits(@RequestBody FruitWrapper fruits){ 
... 
} 
+1

正解です。逆に処理を行うことで、つまり、リストのJSON表現を返すメソッドを記述することで、上記のように["orange"、 "apple"]が返されます。 –

関連する問題