如何通过名单 在使用Spring MVC的发布方法中?


问题内容

我需要在POST方法的请求正文中传递值列表,但得到了400: Bad Request error

下面是我的示例代码:

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

我正在使用的JSON是: {"fruits":["apple","orange"]}


问题答案:

您使用了错误的JSON。在这种情况下,您应该使用如下所示的JSON:

["orange", "apple"]

如果您必须以这种形式接受JSON:

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

您必须创建包装对象:

public class FruitWrapper{

    List<String> fruits;

    //getter
    //setter
}

然后您的控制器方法应如下所示:

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