2017-10-15 80 views
0

我很新的編程。 而我試圖用JSON將我的對象保存到txt中。 但我有一個問題,當我嘗試將JSON對象傳遞給我的構造函數。如何將屬性ArrayList <String>或ArrayList <Integer>或ArrayList <MYCLASS>從JSON對象轉換爲java對象?

我有這堂課。

public class Aluno { 
protected String matricula; 
protected ArrayList<Integer> concluidas; 
protected ArrayList<Integer> cursando; 
protected ArrayList<Notas> notas; 

而且我用這個方法把它轉換爲JSON

public JSONObject toJson(){ 
JSONObject json = new JSONObject(); 
json.put("matricula",this.matricula); 
json.put("concluidas",this.concluidas); 
json.put("notas",this.notas); 
return json; } 

的問題是在我的構造函數:

public Aluno(JSONObject json) { 
    this.matricula = json.getString("matricula"); 
    this.concluidas = (ArrayList<Integer>) json.get("concluidas"); 

    this.notas = (ArrayList<Notas>) json.get("notas"); 


    this.cursando = (ArrayList<Integer>) json.get("cursando"); 
} 

我得到的錯誤,在這裏

this.concluidas = (ArrayList<Integer>) json.get("concluidas"); 

ERROR :線程「main」java.l中的異常ang.ClassCastException:json.JSONArray不能轉換爲java.util.ArrayList

對於ArrayList cursando和ArrayList notas也是如此。

+0

你在哪裏創建JSON數組? –

回答

0
ArrayList<Integer> concluidas = new ArrayList<Integer>();  
JSONArray jArray = (JSONArray)json.get("concluidas");; 
if (jArray != null) { 
    for (int i=0;i<jArray.length();i++){ 
    listdata.add(jArray.getInt(i)); 
    } 
} 

同樣,你也可以轉換其他JSONArrays。

相關問題