Java SpringMVC:POST请求Json对象和list返回400个错误请求
当我向JSON对象添加一个数组时,我的POST请求出现了一个400错误的请求错误 MemberDTO.javaJava SpringMVC:POST请求Json对象和list返回400个错误请求,java,json,spring,rest,spring-mvc,Java,Json,Spring,Rest,Spring Mvc,当我向JSON对象添加一个数组时,我的POST请求出现了一个400错误的请求错误 MemberDTO.java public class MemberDTO{ private String memberId; private String purchaseDate; private List<ProductDTO> selectedProductModels; ... } Controller.java @RequestMapping(value = "member/purchas
public class MemberDTO{
private String memberId;
private String purchaseDate;
private List<ProductDTO> selectedProductModels;
...
}
Controller.java
@RequestMapping(value = "member/purchase", method = RequestMethod.POST)
public String purchase(@RequestBody MemberDTO data){
...
}
JSON
Ajax请求
$.ajax({
type : "POST",
url : contextPath + "/member/purchase.do",
dataType: "json",
contentType:"application/json",
data : JSON.stringify(purchaseData),
success : function(data) {}
});
我试图从json中删除“selectedProductModels”数组列表,但得到了成功的响应。我遗漏了什么吗 请尝试参考此处讨论的枚举反序列化选项 您可以指定枚举常量中指定的确切值“Product 1”、“12.00”、“50%”和“500.00”,因为只能解析这些值,否则您必须编写自定义JSON反序列化程序
注:“产品1”、“12.00”、“50%”、“500.00”“您的文本中只有一个引号,这是一个类型错误吗?我确信,如果您查看日志,您将看到无法创建枚举的异常。使用自定义反序列化程序或根本不使用枚举。不管怎么说,这是一个丑陋的枚举。除非该公司从不提供任何不同的产品、不同的价格和折扣,否则最好只使用一个类。@peeskillet我尝试使用其他类而不是使用该枚举,但在使用数组时仍然会遇到相同的错误。没有例外(您是否有反序列化的基本需求,没有参数构造函数和适当的设置器?
var purchaseData = {
"memberId" : "12312",
"purchaseDate" : "2015/02/14",
"selectedProductModels" : [{
"productName" : "sample1",
"discount": "10%",
"retailPrice": "100.00",
"price": "400.98"
},{
"productName" : "sample2",
"discount": "20%",
"retailPrice": "1400.00",
"price": "4300.98"
}]
};
$.ajax({
type : "POST",
url : contextPath + "/member/purchase.do",
dataType: "json",
contentType:"application/json",
data : JSON.stringify(purchaseData),
success : function(data) {}
});