如何反序列化对象或数组

时间:2013-02-21 13:07:34

标签: java gson

如何处理来自儿童的姓名。我正在使用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对象

1 个答案:

答案 0 :(得分:0)

要获取名称,您需要具有以下路径:

children.name

如果您有一个firstnames数组,则应该以数组形式访问:

children.name.firstname[number]

由于您的“名称”是对象类型,您可以通过“。”来引用它的任何字段。