Cannot deserialize value of

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type [Ljava.lang.Long; from Integer value (token JsonToken.VALUE_NUMBER_INT); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type [Ljava.lang.Long; from Integer value (token JsonToken.VALUE_NUMBER_INT)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 请看👉 :org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Object is
  • 除此之外, 这篇博客: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected cha中的 解决办法:1、get提交和post提交需要明确 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述

  • 以下回答来自chatgpt:

    这个错误表示无法将JSON字符串反序列化为Spring MVC中需要的Java对象。这可能是因为JSON中包含了无效或不匹配的数据类型,或者Java对象中缺少必要的属性。

    解决这个问题的方法包括但不限于以下几种:

    1. 仔细检查JSON字符串和Java对象之间的匹配情况,确保它们的属性和数据类型一致。

    2. 确保Java对象中所有必要的属性都被正确地注释和赋值。

    3. 尝试使用适当的序列化和反序列化库来处理JSON数据。例如,可以使用Jackson或Gson来处理JSON数据,这些库都提供了丰富的配置选项来解决不同的问题。

    以下是一个使用Jackson库来处理JSON数据的示例代码:

    import com.fasterxml.jackson.databind.ObjectMapper;
    
    // 定义一个Java对象
    public class User {
        private String name;
        private int age;
    
        // constructor, getter and setter methods...
    }
    
    // 在Controller中使用ObjectMapper进行反序列化
    @RestController
    public class UserController {
        private ObjectMapper objectMapper = new ObjectMapper();
    
        @PostMapping("/users")
        public void addUser(@RequestBody String json) {
            try {
                User user = objectMapper.readValue(json, User.class);
                // do something with the user object
            } catch (Exception e) {
                // handle the exception
            }
        }
    }
    

    以上是基本的处理JSON数据的方法。如果遇到更复杂的问题,可能需要更深入的调试和配置才能解决。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

该异常通常表示Spring MVC在尝试将请求体JSON转换为Java对象时出现了错误。具体来说,该错误是因为你想要将一个整型数值映射到一个Java的长整型数组(Long[])中。这个整型数值与长整型不兼容,无法正确的进行JSON反序列化。

要解决这个问题,你需要检查请求体JSON的格式是否正确,特别是检查传递给后端的数据类型是否与目标Java对象的类型匹配。如果请求体JSON格式正确,则可能需要调整目标Java对象的类型以反映正确的数据类型,或者对应的JSON数据结构需要满足要求。你还可以考虑使用其他的框架或工具来处理JSON数据,比如Google的Gson库和Java JSON库json-lib,以便更好地控制你的JSON序列化和反序列化过程。