有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java GSON:反序列化泛型对象

我正在尝试使用GSON库对维基百科中的一些JSON进行反序列化。通常,我会像在JSON中一样在Java中创建每个对象,例如:

{
    query: {
        pages: {
            page: {
                pageid: 168079,
                ns: 0,
                title: "2010 FIFA World Cup"
            }
        }
    }
}

这将允许我使用以下Java代码反序列化:

class PageIdResponseGson
{
    private QueryResults query;

    public static class QueryResults
    {
        private PageResults pages;

        public PageResults getPages() {
            return pages;
        }
    }

    public static class PageResults
    {
        private PageResult page;

        public PageResult getPage() {
            return page;
        }
    }

    public static class PageResult
    {
        private int pageid;
        private int ns;
        private String title;

        public int getNs() {
            return ns;
        }

        public int getPageid() {
            return pageid;
        }

        public String getTitle() {
            return title;
        }
    }

    public QueryResults getQuery() {
        return query;
    }
}

然而,Wikipedia JSON使用页面id作为对象名,这意味着我不能采用这种方法

{
    query: {
        pages: {
            168079: {
                pageid: 168079,
                ns: 0,
                title: "2010 FIFA World Cup"
            }
        }
    }
}

有没有办法使用某种通用包装器来处理这些动态对象名


共 (0) 个答案