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

JSON解析错误:无法反序列化java实例。util。ArrayList超出起始\u对象标记

柴高岑
2023-03-14

我在我的项目中使用Spring引导和Spring数据,我有两个类:

@Entity
public class Mission implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue( strategy = GenerationType.IDENTITY )
    private Long              id;
    private String            departure;
    private String            arrival;
    private Boolean           isFreeWayEnabled;
    @OneToMany( mappedBy = "mission" )
    private List<Station>     stations;
    // getters and setters
}

第二节课:

@Entity
public class Station implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue( strategy = GenerationType.IDENTITY )
    private Long              id;
    private String            station;

    @ManyToOne( fetch = FetchType.LAZY )
    @JsonBackReference
    private Mission           mission;
    //getters and setters
}

和控制器:

@RequestMapping( value = "mission/addMission", method = RequestMethod.POST, consumes = "application/json;charset=UTF-8" )
public Reponse addMission( @RequestBody Mission mission ) throws ServletException {
    if ( messages != null ) {
        return new Reponse( -1, messages );
    }
    boolean flag = false;
    try {
        application.addMision( mission );
        application.addStation( mission.getStations(), mission.getId() );
        flag = true;
    } catch ( Exception e ) {
        return new Reponse( 5, Static.getErreursForException( e ) );
    }
    return new Reponse( 0, flag );
}

问题是,当我试图用JSON添加新任务时:

{“出发”:“fff”,“到达”:“ffff”,“isFreeWayEnabled”:假,车站:{“id”:1}

共有1个答案

邴景山
2023-03-14

您正在尝试将对象反序列化为列表。您需要站成为JSON数组

{"departure":"fff","arrival":"ffff","isFreeWayEnabled":false,stations:[{"id":1}, {"id":2}]}
 类似资料:
  • 这是我的JSON: {信息:[{字段:“提供的期间”,表:“课程”,列:“学术水平*”},{字段:“默认评分基准*”,表:“课程”,列:“默认提供百分比”},{字段:“允许的地点”,表:“课程”,列:“允许提供”}]} 这是我的POST bodyRequest服务 这是我的错误: .W.S.M.S.DefaultHandlerExceptionResolver:解析[org.springframe

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

  • 无效的JSON输入:无法反序列化实例脱离START_OBJECT令牌;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化START_OBJECT标记外的``java.util.date`实例 我试图设置默认的日期选择器显示太平洋时间在反应使用功能组件。useState()

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

  • 我正在与jackson一起阅读Mailchimp的Mandrill API返回的JSON响应。对于API响应来说,该响应有点非常规,因为它在方括号内包含把手——一个对象列表。围绕此错误的其他堆栈溢出讨论涉及不在列表中的API响应。 我得到这个错误。。。 定义此响应对象的正确方法是什么? 我尝试用以下类型定义响应。都没有奏效。 @milchalk...如何准确地使用您的对象映射器建议与我目前调用AP