2013-02-21 6 views
0

Как обращаться с именем от детей. Я использую gson. вот мой код и я получаю IllegalStateException: ожидается Begin объект, но был начать массив в строке .. я не знаю, как перебрать 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: ожидается Begin объект, но был начать массив в строке .. я не знаю, как перебрать gson объект

+0

class Root {Список человек; Работа; Child} –

+0

Вышеуказанный комментарий недействителен Java. Пожалуйста, опубликуйте класс, который вы пытаетесь десериализовать, а также ошибку (если есть) или другие симптомы, которые вы видите, и то, что вы ожидаете увидеть. –

+0

Возможный дубликат [Parsing JSON с GSON, объект иногда содержит список, иногда содержащий объект] (http://stackoverflow.com/questions/6223023/parsing-json-with-gson-object-sometimes-contains-list-sometimes-contains -объект) –

ответ

0

Чтобы добраться до имени, необходимо иметь следующий путь:

children.name

Если у вас есть массив firstnames, вы должны получить доступ как массив:

children.name.firstname[number]

Sinc e ваше «имя» - это тип объекта, вы можете ссылаться на любые его поля через «.».

+0

. Я думаю, что OP пытается десериализовать этот JSON на Java и иметь какие-то проблемы с этим. Однако до сих пор неясно, какая ошибка. –

+0

Ну, он действительно спрашивал о документе, и документ присутствует как код. Если он приложит более подробные сведения, это будет более ясно, я согласен. – user

+0

Уверенный, хороший момент! Мы просто должны увидеть, что представляет собой настоящая проблема. –