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

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

庞彬
2023-03-14

这是我的JSON:

{信息:[{字段:“提供的期间”,表:“课程”,列:“学术水平*”},{字段:“默认评分基准*”,表:“课程”,列:“默认提供百分比”},{字段:“允许的地点”,表:“课程”,列:“允许提供”}]}

这是我的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);
    }
}
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;
    }
}

这是我的错误:

.W.S.M.S.DefaultHandlerExceptionResolver:解析[org.springframework.http.converter.httpMessageNotreadableException:JSON解析错误:不能反序列化java.util.arrayList mapping>的START_OBJECT令牌的实例;嵌套异常是com.fasterxml.jackson.databind.exc.mismatchedInpaping>的START_OBJECT令牌的实例

如果有人能帮助我,我将不胜感激。

共有1个答案

叶茂才
2023-03-14

JSON示例显示,数组是在information对象中交付的。您会看到当前的堆栈跟踪,因为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对象

class UpdateMappingList {
    List<UpdateDataMapping> information;
    ...
}
 类似资料:
  • 我有一个错误: JSON分析错误:无法反序列化超出起始\u数组标记;嵌套的异常是com。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化在[Source:(PushbackInputStream);第10行,第21列]处的启动外数组标记(通过引用链:com.asc.skyallign.service.dto.WorkOrderDTO[“t

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

  • 我在我的项目中使用Spring引导和Spring数据,我有两个类: 第二节课: 和控制器: 问题是,当我试图用JSON添加新任务时: {“出发”:“fff”,“到达”:“ffff”,“isFreeWayEnabled”:假,车站:{“id”:1}

  • 问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是

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