Gson.fromJson,如何在我的POJO类上使用动态json值?

时间:2015-03-21 01:03:18

标签: java json gson pojo

gson class:

import com.google.gson.*;

myJson:

{
"time": "notime",
"query": {
     "pages": {
         "18302": {
             "title": "Car",
             "pagelanguage": "en"
         }
      }
}
}

自定义POJO类:

public class MyClass {
    public String time;
    public Query query;

    public class Query {
        public ? pages;

        //...
    }
}

Java代码:

Gson gson = new GsonBuilder().create();
MyClass data = gson.fromJson(myJson, MyClass.class);

我应该将哪个类设置为“页面”变量以处理动态更改(对于exp:“18302”)json键?

2 个答案:

答案 0 :(得分:2)

您可以使用地图。

public class MyClass {
    public String time;
    public Query query;

    public static class Query {
        public Map<String, Page> pages; // <-- here

        public static class Page {
            public String title;
            public String pagelanguage;
        }
    }
}

"18302": {...}将作为条目存储在地图中,其中密钥为"18302",值为新的Page对象。

答案 1 :(得分:1)

如果您不想创建Page类,则可以使用:

Map<String, Map<String, String>> pages;

然后使用它:

pages.get("18302").get("title") // "Car"