SSM:前端传值到后台,保存失败,报错JSON parse error

本文详细解析了在使用Spring框架时遇到的HttpMessageNotReadableException异常,特别是当请求参数不是JSON格式时引发的问题。文章提供了具体的代码示例,包括Controller层的实体类定义和错误的前后端交互方式。通过前端正确地将参数转化为JSON格式,并设置请求头contentType为'application/json;charset=utf-8',有效解决了这一问题。

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'planeName': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'planeName': was expecting ('true', 'false' or 'null')

 

Controller层写法:参数是实体类 参数注解为@RequestBody

   public Object add(@RequestBody Entity entity){
        ......
        ......
        ......
        ......
    }

实体类:

public class Entity{

 private String name;
 private String password;
//省略 getter和setter
}

原因:前台传参格式不是json格式,导致转换错误

 

解决:前端ajax请求,先将参数转为json格式,然后请求头contentType改为'application/json;charset=utf-8'

  var allData = {
                 //参数名必须和实体属性名相同
                "name":nameInput, //注意 name必须和实体属性名相同
                "password":passwordInput, //password 必须和实体属性名相同
            };

 $.ajax({
                type: 'get',
                url: '',//接口地址
                contentType:'application/json;charset=utf-8',  //重点
                data : JSON.stringify(allData), //重点
                dataType: 'json',
                async:false,
                success: function(data){
                   //成功逻辑
                },
                error:function() {
                   //错误逻辑
                }
            });

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值