将JSON传递给Spring控制器的400(错误请求)

时间:2016-03-01 23:08:57

标签: java jquery json spring-mvc post

我正在尝试将对象数组作为JSON字符串传递给Spring控制器。我的JSON格式数据看起来像

[{
    "id": 123456,
    "name": "First Item"
},
{
    "id": 78910,
    "name": "Second Item"
}]

所以我发送给控制器

@RequestMapping(value = "/some/url", method = RequestMethod.POST, consumes = "application/json")
public void doSomething(@RequestBody List<CustInfo> myCustInfoList) {
    System.out.println("Message Received " + myCustInfoList);
}

使用此AJAX调用

$.ajax({
  type: 'POST',
  url: '/some/url',
  contentType: 'application/json',
  data: '[{"id": 123456, "name": "First Item"}, {"id": 78910, "name": "Second Item"}]',
  success: function () {
            consloe.log("Success");
           }
});

为此我有两个豆OuterCoverCustInfo。其中OuterCover包含CustInfoCustInfo的列表idname

public class OuterCover {

  List<CustInfo> myCustInfoList;

  //getter & setter

}

但是我得到400(不良请求)。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您需要将OuterCover类封装到其他类中,因为请求具有OuterCover元素。 E.g。

class RequestDto{

    @JsonElement("outerCover")
    private OuterCover outerCover;

    //getters and setters
}

或者,您可以修改请求有效负载并删除'outerCover'元素,例如:

[{
    "id": 123456,
    "name": "First Item"
},
{
    "id": 78910,
    "name": "Second Item"
}]