Java SpringMVC将json传输到对象
我正在尝试使用ajax将json发布到我的spring mvc控制器我在js文件中使用的代码如下:Java SpringMVC将json传输到对象,java,json,spring-mvc,Java,Json,Spring Mvc,我正在尝试使用ajax将json发布到我的spring mvc控制器我在js文件中使用的代码如下: $('#regist').click(function () { $.ajax({ url: 'user/regist', contentType: "application/json; charset=utf-8", type: 'post',
$('#regist').click(function () {
$.ajax({
url: 'user/regist',
contentType: "application/json; charset=utf-8",
type: 'post',
dataType: 'json',
success: function (data) {
var json = JSON.stringify(data);
alert(json);
},
fail: function (errMsg) {
alert(errMsg);
},
data: JSON.stringify({
'IDCard': '1234567890'
})
})
});
我的控制器函数的签名如下:
@RequestMapping(value = "/regist", method = RequestMethod.POST)
@ResponseBody
public ResultJson regist(HttpSession session, @RequestBody RegistFormJson json)
public class RegistFormJson {
private String IDCard;
public String getIDCard() {
return IDCard;
}
public void setiDCard(String IDCard) {
this.IDCard = IDCard;
}
}
RegistrFormJSON如下所示:
@RequestMapping(value = "/regist", method = RequestMethod.POST)
@ResponseBody
public ResultJson regist(HttpSession session, @RequestBody RegistFormJson json)
public class RegistFormJson {
private String IDCard;
public String getIDCard() {
return IDCard;
}
public void setiDCard(String IDCard) {
this.IDCard = IDCard;
}
}
现在,当我发送我的请求时,我使用
logger.info(json.getIDCard);
当我将bean属性更改为idCard并更改其他代码时,我可以成功获得结果。谁能告诉我为什么?如果我想在代码中使用IDCard,我如何才能得到结果。谢谢Spring附带了Jackson API,它使用标准Java代码约定将JSON属性映射到Java模型 由于IDCard不是小写,Jackson API无法映射JSON属性 为了克服这个问题,您需要在Java属性上指定@JsonPropertyIDCard注释,以便对JSON属性使用IDCard
同样,您可以在ObjectMapper上设置PropertyNamegStrategy以解决此问题。您是否尝试将其添加到变量中?var obj={IDCard:1234567890};并将其作为数据发送?数据:JSON.stringifyobjI按照您的建议,在私有字符串IDCard之前添加@JsonProperty;它起作用了!谢谢