Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance

Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList out of VALUE_STRING token

原因:
页面传参json数组字符串,导致后台spring无法解析,例如:[{“name”: “1”}, {“name”: “2”}]
解决方法:
把json字符串,转换为json对象。

{attributes: attributes}
前端传参改成:
{attributes: JSON.parse(attributes)}

原文链接:https://blog.csdn.net/u010616713/article/details/106995935/

------------------------------------------------------------------------------------

springboot报错_Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token

一、问题描述:

springboot框架,前台通过ajax像后台controller传递参数。

前台代码:

1

2

3

4

5

6

7

8

9

10

11

12

$.ajax({

       type: "POST",//方法类型

       contentType:'application/json',

       dataType: "json",//预期服务器返回的数据类型

       url: "http://localhost:8080/saveRBD",//url

       data: JSON.stringify(list),//list是链表结构

       success: function (data) {

         console.log("成功");

       },

       error: function (result) {

          console.log("失败");

       }
});

后台代码:

1

2

3

4

5

6

7

//添加数据

@RequestMapping("/add")

@ResponseBody

public int addList(@RequestBody LinkedList list){

    int result = rbdService.addRBD(list);

    return result;

}

报错:

Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

二、分析原因

客户端返回类型与接收类型不一致。

三、解决

转换成简单的数据类型或者自己封装成对象来传递并且接收。

你可能感兴趣的:(java)