首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSON解析错误:无法反序列化ArrayList实例

JSON解析错误:无法反序列化ArrayList实例
EN

Stack Overflow用户
提问于 2020-08-20 18:35:16
回答 1查看 8.5K关注 0票数 1

我正在尝试向POST bodyRequest服务发送一个JSON,以便将这些信息作为Java或类似的东西使用。当我尝试这样做时,我会收到反序列化错误。

这是我的JSON:

{信息:{字段:“提供的期间”,表:“课程”,列:“学术级别*”,{字段:“默认分级基础*”,表:“课程”,列:“默认提供百分比”},{字段:“允许的地点”,表:“课程”,列:“允许提供”}}

这是我的邮政bodyRequest服务

代码语言:javascript
运行
复制
@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类如下所示:

代码语言:javascript
运行
复制
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;
    }
}

这是我的错误:

已解析的[org.springframework.http.converter.HttpMessageNotReadableException: JSON解析错误:无法从START_OBJECT令牌中反序列化java.util.ArrayList<com.kastech.model.UpdateDataMapping>实例;嵌套的异常是com.fasterxml.jackson.databind.exc.MismatchedInputException:不能在源:(PushbackInputStream)处反序列化java.util.ArrayList<com.kastech.model.UpdateDataMapping>令牌之外的java.util.ArrayList<com.kastech.model.UpdateDataMapping>实例:(PushbackInputStream);行: 1,列: 1]

如果有人能帮我,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-20 20:13:08

JSON示例显示,数组是在information对象中传递的。您正在查看当前堆栈跟踪,因为Jackson无法找到反序列化请求有效负载的适当方法。

或者,您可以将请求JSON更改为简单的列表

代码语言:javascript
运行
复制
[ {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对象。

代码语言:javascript
运行
复制
class UpdateMappingList {
    List<UpdateDataMapping> information;
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63511273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档