Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在我的POJO类上使用动态json值?_Java_Json_Gson_Pojo - Fatal编程技术网

Java 如何在我的POJO类上使用动态json值?

Java 如何在我的POJO类上使用动态json值?,java,json,gson,pojo,Java,Json,Gson,Pojo,gson等级: import com.google.gson.*; myJson: { "time": "notime", "query": { "pages": { "18302": { "title": "Car", "pagelanguage": "en" } } } } 自定义POJO类: public class MyClass { public String ti

gson等级:

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);
我应该为我的“pages”变量设置什么类来处理动态变化的(exp:“18302”)json键?

您可以使用映射

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;
        }
    }
}
公共类MyClass{
公共字符串时间;
公共查询;
公共静态类查询{
公共地图页;//您可以使用地图

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;
        }
    }
}
公共类MyClass{
公共字符串时间;
公共查询;
公共静态类查询{
公共地图页;//您可以使用地图

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;
        }
    }
}
公共类MyClass{
公共字符串时间;
公共查询;
公共静态类查询{
公共地图页;//您可以使用地图

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;
        }
    }
}
公共类MyClass{
公共字符串时间;
公共查询;
公共静态类查询{

公共地图页面;//如果不想创建页面类,这将起作用:

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

如果您不想创建页面类,这将起作用:

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

如果您不想创建页面类,这将起作用:

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

如果您不想创建页面类,这将起作用:

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


pages
的值已知吗?换句话说,它是否总是一个带有
title
pagelanguage
的JSON对象?是的,唯一的更改变量名是“18302”然后我会使用一个
Map
,其值类型是一个POJO类型,适合JSON对象的
title
pagelanguage
。事实上,“18302”也可以有一个自定义类(如查询),因此如果我使用Map,我会丢失POJO树。而且我无法在“18302”中访问我的自定义类?好的,您必须检查键。
页面
的值已知吗?换句话说,它是否始终是一个JSON对象,具有
标题
页面语言
?是的,唯一的更改变量名称是“18302”然后我会使用一个
Map
,其值类型是一个POJO类型,适合JSON对象的
title
pagelanguage
。事实上,“18302”也可以有一个自定义类(如查询),因此如果我使用Map,我会丢失POJO树。而且我无法在“18302”中访问我的自定义类?好的,您必须检查键。
页面
的值已知吗?换句话说,它是否始终是一个JSON对象,具有
标题
页面语言
?是的,唯一的更改变量名称是“18302”然后我会使用一个
Map
,其值类型是一个POJO类型,适合JSON对象的
title
pagelanguage
。事实上,“18302”也可以有一个自定义类(如查询),因此如果我使用Map,我会丢失POJO树。而且我无法在“18302”中访问我的自定义类?好的,您必须检查键。
页面
的值已知吗?换句话说,它是否始终是一个JSON对象,具有
标题
页面语言
?是的,唯一的更改变量名称是“18302”然后我会使用一个
Map
,其值类型是一个POJO类型,适合JSON对象的
title
pagelanguage
。事实上,“18302”也可以有一个自定义类(如查询),因此如果我使用Map,我会丢失POJO树。而且我无法在“18302”中访问我的自定义类好的,你必须检查钥匙。这正是我想要的!谢谢!这正是我想要的!谢谢!这正是我想要的!谢谢!这正是我想要的!谢谢!这正是我想要的!谢谢!