Java 如何反序列化对象或数组

Java 如何反序列化对象或数组,java,gson,Java,Gson,如何处理来自子级的名称。我正在使用gson。 这是我的代码,我得到了illegalstateexception:应该是Begin对象,但在第行是Begin数组。。 我不知道如何迭代gson对象 Reader reader = jSONParser.getGSONFromUrl(url); Root response=null; try { response = new Gson().fromJson(reader, Root.class);

如何处理来自子级的名称。我正在使用
gson
。 这是我的代码,我得到了illegalstateexception:应该是Begin对象,但在第行是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;
如何处理来自子级的名称。我正在使用
gson
。 这是我的代码,我得到了illegalstateexception:应该是Begin对象,但在第行是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;
children.name

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

children.name.firstname[编号]


由于“name”是一种对象类型,您可以通过“.”

class Root{List persons;Job Job;Child}引用它的任何字段。上述注释无效。请发布您试图反序列化到的类,以及您看到的错误(如果有)或其他症状,以及您希望看到的内容。据我所知,在问题描述中,自定义反序列化对于处理JSON有时是数组,有时是对象的情况是必要的。在以前的StackOverflow线程(如和)中已经介绍了使用Gson处理此特定问题。此信息基于较旧版本的Gson。有可能是一个较新的版本添加了或将添加一个configuratimable的副本,我认为OP正在尝试将这个JSON反序列化为Java,但在这样做时遇到了一些麻烦。不过,目前还不清楚错误是什么。嗯,他确实询问了有关该文档的信息,并且该文档以代码形式存在。我同意,如果他能提供更多的细节,事情就会更清楚。当然,这一点很好!我们只需要看看实际的问题是什么。我得到的是JSONReader java.lang.IllegalStateException:预期的是BEGIN_对象,但在第1行第5161216列是BEGIN_数组,所以为什么不提供正确的代码,完整的异常堆栈跟踪,并将您的问题表达得更清楚?另外,我对第1行(!)中的“516216列”有点困惑。。。你能想象那份文件吗?
{

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

job:{..},

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

}