2017-08-13 3 views
1

をjava.util.ArrayListのインスタンスをデシリアライズすることはできません私は私のプロジェクトでは春ブーツと、スプリングのデータを使用していると私は2つのクラスを持っている: @Entity パブリッククラスのミッションは、{Serializableを実装 プライベートstatic final long serialVersionUID = 1L;JSON解析エラー:START_OBJECTのうち、トークン

@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 
} 

とコントローラ:i4mは新しいミッションを追加しようとするとprobelがある

@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オブジェクト:

{"departure":"fff","arrival":"ffff","isFreeWayEnabled":false,stations:{"id":1}

+0

デシリアライズしたいjsonを共有できますか? "" "fff"、 "到着": "ffff"、 "isFreeWayEnabled":false、 "stations":{"id":1} –

+0

その上: –

答えて

1

デシリアライズしてリストに登録するには、json配列のステーションが必要です

{"departure":"fff","arrival":"ffff","isFreeWayEnabled":false,stations:[{"id":1}, {"id":2}]}