【发布时间】:2014-11-26 17:20:57
【问题描述】:
我在使用 Spring MVC 和 json 时遇到问题。
我使用 SimplecartJS 生成这样的 json 数据:
{"currency":"RUR",
"shipping":250,
"tax":0,
"taxRate":0,
"itemCount":2,
"item_name_1":"Name of product #1",
"item_quantity_1":6,
"item_price_1":159,
"item_options_1":"",
"item_name_2":"Name of product #2",
"item_quantity_2":2,
"item_price_2":159,
"item_options_2":"",
"form":{
"Fname":"UserName",
"Phone":"7123456789",
"Address":"UserAddress",
"Comment":"Comment Text"
}
}
我的控制器弹簧
@RequestMapping(value = "/checkorder2", method = RequestMethod.POST, headers = "Accept=application/json")
public String test (@RequestBody OrderCon orderC)throws Exception{
ObjectMapper om = new ObjectMapper();
om.canSerialize(OrderCon.class);
System.out.println(om);
return test(orderC);
}
来自客户端的代码
var url = 'http://localhost:8080/url'
jQuery.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
contentType:'application/json',
dataType: "json",
type: "POST",
url: url,
data: JSON.stringify(data),
还有我的问题:
当我向控制器发送数据时,我有一个错误 400 Bad request。客户端发送的请求在语法上不正确。添加新项目时,字段名称将为“item_name_2”、“item_name_3”等。我该如何解析。我尝试解析到列表,设置但它不起作用。请帮忙。
UPD1:OrderCon.java
public class OrderCon {
private List<String> form;
private List<List<String>> json;
getters and setters...
}
【问题讨论】:
-
发布您的 OrderCon 课程。
-
添加了 OrderCon 类
-
您能否为
Item创建一个具有name, quantity, price, options字段的类,然后在OrderCon类中列出这些? -
@Leon 我试过这个,但是当添加新项目 item_name_+i, i++ 例如 "item_name_1" >> "item_name_2" >> "item_name_3" 等等。
-
@Leon 这里是一个 simplecartjs 代码github.com/wojodesign/simplecart-js/blob/master/simpleCart.js string # 1156。我会尝试编辑它。 :)
标签: java json spring-mvc jackson