当前位置: 首页 > 知识库问答 >
问题:

JSON分析错误:无法反序列化`java.lang.long的实例

梁华清
2023-03-14
@RequestMapping(path="/student/create", method=RequestMethod.POST)<br>
     public ResponseEntity<String> createStudent(@RequestBody Long nummer, String firstname, String lastname){<br>
      service.createStudent(matrikelnummer, vorname, nachname);<br>
      return new ResponseEntity<String>("gut gemacht", HttpStatus.OK);
{"nummer":15557,"firstname":"toti","lastname":"Innna"}

共有1个答案

滕成双
2023-03-14

在您的示例中,映射器期望主体呈现一个长对象,但您传递给它的是一个学生对象。这不匹配,因此它抛出一个异常。

没有必要将学生的所有字段都作为单独的方法参数列出,您只需将学生对象作为RequestBody参数传递即可。然后,对象映射器将尝试从提供的JSON解析一个学生实例

示例:

@RequestMapping(path="/student/create", method=RequestMethod.POST)
public ResponseEntity<String> createStudent(@RequestBody Student student){
    service.createStudent(student);
    return new ResponseEntity<String>("gut gemacht", HttpStatus.OK);
}
 类似资料:
  • 这是我的JSON: {信息:[{字段:“提供的期间”,表:“课程”,列:“学术水平*”},{字段:“默认评分基准*”,表:“课程”,列:“默认提供百分比”},{字段:“允许的地点”,表:“课程”,列:“允许提供”}]} 这是我的POST bodyRequest服务 这是我的错误: .W.S.M.S.DefaultHandlerExceptionResolver:解析[org.springframe

  • 我有一个错误: JSON分析错误:无法反序列化超出起始\u数组标记;嵌套的异常是com。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化在[Source:(PushbackInputStream);第10行,第21列]处的启动外数组标记(通过引用链:com.asc.skyallign.service.dto.WorkOrderDTO[“t

  • 我能解决这个错误吗?当我想添加一个新对象时,会出现这种情况 “消息”:“JSON分析错误:无法反序列化实例脱离START_ARRAY内标识;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化实例脱离START_ARRAY内标识\n位于[源:(PushbackInputStream);行:1,列:1]”

  • 我有一个带有restTemplate调用的方法,如下所示: SomeClass.Class: API返回一个数组,我收到的错误是:org.springframework.web.client.RestClientException:提取类型[class...]和内容类型[application/json;charset=utf-8]的响应时出错;嵌套异常为org.springframework.h

  • 这是包含列表的POJO JSON具有以下结构: 运行时,web服务的结果运行良好,但反序列化会打印此错误:

  • 问题内容: 这是我的课 最初的一个实际上需要转换为良好的json数据。这是最初的坏人 这是我的json数据,我无法反序列化。即使更改,我仍会收到默认值 我的自定义封面 问题答案: 您可以使用json.net以显示的格式对a进行反序列化和重新序列化,只要您使用custom即可。这是必需的,因为默认情况下,对象集合在JSON数组之间进行序列化,但是在JSON中,对象集合以单个对象的紧凑形式进行序列化,