Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC将json传输到对象_Java_Json_Spring Mvc - Fatal编程技术网

Java SpringMVC将json传输到对象

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',

我正在尝试使用ajax将json发布到我的spring mvc控制器我在js文件中使用的代码如下:

$('#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;它起作用了!谢谢