簡體   English   中英

JSON 解析錯誤:無法反序列化 ArrayList 的實例

[英]JSON parse error: Cannot deserialize instance of ArrayList

我正在嘗試將 JSON 發送到 POST bodyRequest 服務,以將此信息用作 Java ArrayList 或類似的東西。 當我嘗試這樣做時,我收到一個反序列化錯誤

這是我的 JSON:

{信息:[ {字段:“提供的期間”,表格:“課程”,列:“學術水平*”},{字段:“默認評分基礎*”,表格:“課程”,列:“默認提供百分比” }, {fields: "Allowed Locations", tables: "Courses", columns: "Allowed to Offer"} ] }

這是我的 POST bodyRequest 服務

@ResponseBody
@PostMapping("/dataMapping/update/table")

public ResponseEntity<Object> updateDataMappingTable(@RequestBody List<UpdateDataMapping> information) {

    try {
        String update = this.dataMappingService.update(information);
        return new ResponseEntity<Object>(update, HttpStatus.OK);
    } catch (Exception e) {
        Response response = new Response();
        response.setError(e.getMessage());
        return new ResponseEntity<Object>(response, HttpStatus.OK);
    }
}

我的 UpdateDataMapping class 看起來像:

public class UpdateDataMapping {

    public String fields;
    public String tables;
    public String columns;

    public UpdateDataMapping() {

    }

    public UpdateDataMapping(String fields, String tables, String columns) {
    
        this.fields = fields;
        this.tables = tables;
        this.columns = columns;
    }

    public String getFields() {
        return fields;
    }

    public void setFields(String fields) {
        this.fields = fields;
    }

    public String getTables() {
        return tables;
    }

    public void setTables(String tables) {
        this.tables = tables;
    }

    public String getColumns() {
        return columns;
    }

    public void setColumns(String columns) {
        this.columns = columns;
    }
}

這是我的錯誤:

.wsmsDefaultHandlerExceptionResolver: Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of java.util.ArrayList<com.kastech.model.UpdateDataMapping> out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList<com.kastech.model.UpdateDataMapping> out of START_OBJECT token at [Source: (PushbackInputStream); 行:1,列:1]]

如果有人可以幫助我,我將不勝感激。

您的 JSON 示例顯示您的陣列在information object 內交付。 您正在查看當前堆棧跟蹤,因為 Jackson 無法找到反序列化您的請求負載的適當方法。

或者,您可以將您的請求 JSON 更改為簡單的列表

[ {fields: "Periods Offered", tables: "Courses", columns: "Academic Level*"}, {fields: "Default Grading Basis*", tables: "Courses", columns: "Default Offering Percentage"}, {fields: "Allowed Locations", tables: "Courses", columns: "Allowed to Offer"} ]

或者您可以讓 POJO 代表該information object

class UpdateMappingList {
    List<UpdateDataMapping> information;
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM