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

JSON分析错误:无法反序列化不符合START_ARRAY令牌的com.finance.biblioteca.service.dto.librodto实例;

常睿范
2023-03-14
[
    {
        "id": 52,
        "titolo": "Le solite sospette",
        "categorie": [],
        "autori": [],
        "editori": [],
        "anno_uscita": "2015",
        "idCollana": 1,
        "disponibilita": 1,
        "prezzo": 9
    }
]

我能解决这个错误吗?当我想添加一个新对象时,会出现这种情况

@PostMapping(URL)
public LibroDTO newLibro(@RequestBody LibroDTO libroDTO)

“消息”:“JSON分析错误:无法反序列化com.finance.biblioteca.service.dto.librodto实例脱离START_ARRAY内标识;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化com.finance.biblioteca.service.dto.librodto实例脱离START_ARRAY内标识\n位于[源:(PushbackInputStream);行:1,列:1]”

共有1个答案

慕宏儒
2023-03-14

您的JSON字符串以[开头,因此它是一个数组,而newlibrodto方法只使用LibroDTO
您应该将该方法的签名更改为:
public LibroDTO newlibroo(@requestbody list libri)
或者将您的JSON更改为

{ "id": 52, "titolo": "Le solite sospette", "categorie": [], "autori": [], "editori": [], "anno_uscita": "2015", "idCollana": 1, "disponibilita": 1, "prezzo": 9 }

以传递单个对象。

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

  • 我需要向网络服务发送帖子请求,但它在异常后返回。 实际服务器响应如下: 我根据以下内容发送请求 我的代码

  • 我尝试使用jacksonapi解析json,并提供以下详细信息。但我错了。请查找以下代码和堆栈跟踪的详细信息。 JSON 控制器类 下面这个类是我的bean类。PublisheData.java 发布数据列表.java 我收到以下错误。

  • 问题内容: 我正在尝试将json请求解析为模型。我不知道这段代码有什么问题。json的语法看起来正确,并且在Java模型上也有注释。我不知道为什么会出现如下错误: Java模型: 杰森代码: 问题答案: 您已声明为单个对象,但是将其作为JSON文档中多个对象的数组返回。 您的模型当前将parameters节点定义为一个对象: 这意味着您的模型对象需要一个如下所示的JSON文档: 但是在JSON文档

  • 下面是POJO类: 主要功能如下:

  • 问题内容: 我正在使用来自外部合作伙伴的API。不幸的是,返回的响应似乎没有固定的结构。理想情况下,API合同意味着它不会被违反,但是这种情况一直在发生。 无论如何,所以发生的事情是JSON响应中的字段主要是一个地图,但有时却是一个列表。 例如,假设以下是我通常得到的响应: 但是在极少数情况下,我会得到列表,而不是地图或其他违反合同的情况。 例如: 我正在使用杰克逊将此响应映射到POJO。在某些情