json分析错误:无法反序列化“com.asc.project.service.dto.taskdatadto”的示例

li9yvcax  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(239)

这个问题在这里已经有答案了

无法反序列化spring webservice中start\数组令牌外的对象示例(3个答案)
三个月前关门了。
我有一个错误:
json分析错误:无法反序列化的示例 com.asc.skyalign.service.dto.TaskDataDTO 启动外\u数组令牌;嵌套异常为com.fasterxml.jackson.databind.exc.missmatchdinputException:无法反序列化的示例 com.asc.skyalign.service.dto.TaskDataDTO [source:(pushbackinputstream)处的\n启动\u数组令牌不足;行:10,列:21](通过引用链:com.asc.skyallign.service.dto.workorderdto[“taskdatalist”])
发布时 Json api,这是我的要求:

{
    "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.service.dto.TaskDataDTO 启动外\u数组令牌;嵌套异常为com.fasterxml.jackson.databind.exc.missmatchdinputException:无法反序列化的示例 com.asc.skyalign.service.dto.TaskDataDTO [source:(pushbackinputstream)处的\n启动\u数组令牌不足;行:10,列:21](通过引用链:com.asc.skyallign.service.dto.workorderdto[“taskdatalist”])
java idea终端中的错误:
错误请求:json分析错误:无法反序列化的示例 com.asc.skyalign.service.dto.TaskDataDTO 启动外\u数组令牌;嵌套异常为com.fasterxml.jackson.databind.exc.missmatchdinputException:无法反序列化的示例 com.asc.skyalign.service.dto.TaskDataDTO [source:(pushbackinputstream)处的启动\u数组令牌不足;行:10,列:21](通过引用链:com.asc.skyallign.service.dto.workorderdto[“taskdatalist”])

vh0rcniy

vh0rcniy1#

public void setTaskDataList(TaskDataDTO taskDataDTO) {
        this.taskDataList.add(taskDataDTO);
 }

对我来说很奇怪,你说你设置了任务数据列表,并且你有一个taskdatadto-in参数把它添加到列表中。
WorkOrderDto taskdatalist getter和setter应该是这样的

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

@JsonProperty("taskDataList")
public void setTaskDataList(List<TaskDataList> value) { this.taskDataList = value; }

相关问题