2013-02-21 48 views
0

如何處理兒童的姓名。我正在使用gson。 這裏是我的代碼,我得到IllegalStateException異常:預計開始的對象,但在行開始陣列.. 我不知道如何遍歷GSON對象如何反序列化對象或數組

 Reader reader = jSONParser.getGSONFromUrl(url); 
    Root response=null; 
    try { 
     response = new Gson().fromJson(reader, Root.class); 
     person 
     = new ArrayList<Person>(Arrays.asList(response.person.clone())); 
     children 
     = new ArrayList<Child>(Arrays.asList(response.Children.clone())); 
     job 
     = response.job; 
     } catch (Exception e) { 
     // TODO: handle exception 
     System.out.println("JSONReader "+e.getMessage()); 
    } 
} 

public class Root{ 
    @SerializedName("person")  
    Person[] persons; 
    @SerializedName("job") 
    Job job; 
    @SerializedName("children") 
    Child[] children; 

}

class Child{ 
    int cID; 
    List<String>names; 
} 


{ 
person:[{}, {}, {}..], 

job:{..}, 

children:{"cID":"1", "name":{"firstname":"mark"}} 

} 

{ 

person:[{}, {}, {}..], 

job:{..}, 

children:{"cID":"1", "name":[{"firstname":"mark"}, {"firstname":"jan"}, {"firstname":"tamara"}...]} 

} 

如何處理兒童的姓名。我正在使用gson。 這裏是我的代碼,我得到IllegalStateException異常:預計開始的對象,但在行開始陣列.. 我不知道如何遍歷GSON對象

+0

class Root {List persons;工作崗位;子}} – 2013-02-21 13:33:30

+0

以上評論是無效的Java。請張貼您想要反序列化的課程,以及您看到的錯誤(如果有)或其他症狀,以及您期望看到的內容。 – 2013-02-21 13:38:49

+0

[解析JSON與GSON,對象有時包含列表有時包含對象](http://stackoverflow.com/questions/6223023/parsing-json-with-gson-object-sometimes-contains-list-sometimes-contains -object) – 2013-02-21 14:26:59

回答

0

要得到你需要有以下路徑名稱:

children.name

如果你有firstnames的數組,你應該訪問一個數組:

children.name.firstname[number]

辛格e你的「名字」是一個對象類型,你可以通過「。」來引用它的任何字段。

+0

我認爲OP正在嘗試將此JSON反序列化爲Java,並且遇到了一些麻煩。不過,目前還不清楚錯誤是什麼。 – 2013-02-21 13:37:40

+0

那麼,他確實詢問過這個文件,這個文件是作爲代碼出現的。如果他重視更多的細節,那我會更加清楚,我同意。 – user 2013-02-21 13:44:08

+0

當然,好點!我們只需要看看實際問題是什麼。 – 2013-02-21 13:49:14