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

JSON解析错误:无法反序列化'com.asc.project.service.dto.TaskDataDTO'[重复]的实例

夏侯兴怀
2023-03-14

我有一个错误:

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

当postJsonAPI时,这是我的请求:

    {
    "siteLocationLat": "35.123415",
    "workOrderID": "WO-1rmrud5gkdj4r0n6",
    "siteId": "NNA-12312312311",
    "siteAcessNotes": "No notes",
    "siteLocationLong": "128.910283984",
    "assignedTo": "ibrahem@test.com",
    "timeStamp": 1596738379102,
    "email": "ibrahem@test.com",
    "taskDataList": [
      {
        "roll": "2.0",
        "azimuth": "120.0",
        "tilt": "9.0",
        "sectorLocationLat": "35.123451",
        "amtImei": "35800121213",
        "wakeuUpInterval": "1440",
        "sectorID": "NNA-12312312311-1",
        "sectorLocationLong": "128.123123",
        "taskName": "Install AMT Sector A",
        "taskDescription": "Install AMT on Back of the Antenna"
      }
    ]
    
}

我的WorkOrderDto是:

    public class WorkOrderDTO implements Serializable {   
 private  List<TaskDataDTO> taskDataList=new ArrayList<TaskDataDTO>();

    public List<TaskDataDTO> getTaskDataList() {
        return taskDataList;
    }
    public void setTaskDataList(TaskDataDTO taskDataDTO) {
        this.taskDataList.add(taskDataDTO);
    }
}

我的工作订单实体是:

public class WorkOrder implements Serializable {
    private  List<TaskData> taskDataList=new ArrayList<TaskData>();

    public List<TaskData> getTaskDataList() {
        return taskDataList;
    }

    public void setTaskDataList(TaskData taskData) {
        taskDataList.add(taskData);
    }
}
 

当运行我的应用程序并请求api时,在到达我的控制器之前,我在postman body中看到此异常:

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

Java Idea终端中的此错误:

错误请求:JSON解析错误:无法反序列化com的实例。asc。skyalign。服务dto。TaskDataDTO超出起始\u数组标记;嵌套的异常是com。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化com的实例。asc。skyalign。服务dto。TaskDataDTO在[Source:(PushbackInputStream);行:10,列:21](通过引用链:com.asc.skyallign.service.dto.WorkOrderDTO[“taskDataList”])处的启动外数组令牌

共有1个答案

锺博耘
2023-03-14
public void setTaskDataList(TaskDataDTO taskDataDTO) {
        this.taskDataList.add(taskDataDTO);
 }

对我来说很奇怪,你说你设置了任务数据列表,并且你在参数中有一个taskDataDto,你把它添加到列表中WorkOrderDtotaskdatalistgetter和setter应该是这样的

@JsonProperty("taskDataList")
public List<TaskDataList> getTaskDataList() { return taskDataList; }

@JsonProperty("taskDataList")
public void setTaskDataList(List<TaskDataList> value) { this.taskDataList = value; }
 类似资料:
  • 这是我的JSON: {信息:[{字段:“提供的期间”,表:“课程”,列:“学术水平*”},{字段:“默认评分基准*”,表:“课程”,列:“默认提供百分比”},{字段:“允许的地点”,表:“课程”,列:“允许提供”}]} 这是我的POST bodyRequest服务 这是我的错误: .W.S.M.S.DefaultHandlerExceptionResolver:解析[org.springframe

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

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

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

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