Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 如何使用动态键为json创建POJO类以进行改装?_Java_Android_Json_Gson_Retrofit2 - Fatal编程技术网

Java 如何使用动态键为json创建POJO类以进行改装?

Java 如何使用动态键为json创建POJO类以进行改装?,java,android,json,gson,retrofit2,Java,Android,Json,Gson,Retrofit2,在上面的json中,“pages”对象中的数字键是动态的。那么如何为这个json创建pojo呢 请,请,请帮帮我。 我已经找了很多,但是没有找到有效的。 另外,我是一个初学者在改造,所以请详细回答。 我已经看到一些答案提到在这种情况下使用map(例如)。但这些答案并没有得到恰当的阐述。请帮助我彻底理解。您可以使用hashmap在页面类中获取其他属性/动态属性 { "batchcomplete": "", "warnings": { "main": { "*": "Un

在上面的json中,“pages”对象中的数字键是动态的。那么如何为这个json创建pojo呢

请,请,请帮帮我。 我已经找了很多,但是没有找到有效的。 另外,我是一个初学者在改造,所以请详细回答。
我已经看到一些答案提到在这种情况下使用map(例如)。但这些答案并没有得到恰当的阐述。请帮助我彻底理解。

您可以使用
hashmap
页面
类中获取其他属性/动态属性

{
  "batchcomplete": "",
  "warnings": {
    "main": {
      "*": "Unrecognized parameter: rvprop."
    },
    "extracts": {
      "*": "\"exlimit\" was too large for a whole article extracts request, lowered to 1."
    }
  },
  "query": {
    "normalized": [
      {
        "from": "pune",
        "to": "Pune"
      }
    ],
    "pages": {
      "164634": {
        "pageid": 164634,
        "ns": 0,
        "title": "Pune",
        "extract": ""
                }
            }
      }
}
private Map additionalProperties=new HashMap();
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}

您可以在
页面
类中使用
哈希映射
来获取其他属性/动态属性

{
  "batchcomplete": "",
  "warnings": {
    "main": {
      "*": "Unrecognized parameter: rvprop."
    },
    "extracts": {
      "*": "\"exlimit\" was too large for a whole article extracts request, lowered to 1."
    }
  },
  "query": {
    "normalized": [
      {
        "from": "pune",
        "to": "Pune"
      }
    ],
    "pages": {
      "164634": {
        "pageid": 164634,
        "ns": 0,
        "title": "Pune",
        "extract": ""
                }
            }
      }
}
private Map additionalProperties=new HashMap();
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
公共类查询{
私有列表规范化;
私人地图页;
//吸气剂和塞特
公共地图getPages(){
返回页面;
}
公共无效设置页(地图页){
this.pages=页面;
}
公共类页面{
私有字符串pageid;
私人互联网;
私有字符串标题;
私有字符串提取;
//定义所有getter和setter方法
}
公共课堂演讲{
来自的私有字符串;
私有字符串到;
}
}
//使用setter方法在Pages类中添加数据。Page pageObj=新页面();pageObj.setPageid(“164634”);pageObj.setns(0)。。。 创建本地映射pagesObj=newhashmap(); pagesObj.put(“164634”,pageObj); 使用设置页面(pagesObj);定值

公共类查询{
私有列表规范化;
私人地图页;
//吸气剂和塞特
公共地图getPages(){
返回页面;
}
公共无效设置页(地图页){
this.pages=页面;
}
公共类页面{
私有字符串pageid;
私人互联网;
私有字符串标题;
私有字符串提取;
//定义所有getter和setter方法
}
公共课堂演讲{
来自的私有字符串;
私有字符串到;
}
}
//使用setter方法在Pages类中添加数据。Page pageObj=新页面();pageObj.setPageid(“164634”);pageObj.setns(0)。。。 创建本地映射pagesObj=newhashmap(); pagesObj.put(“164634”,pageObj); 使用设置页面(pagesObj);定值


不要直接问问题。你们必须自己试一下,若你们不能解决问题,那个么用示范的方式提问。看看这个,这可能会对你有所帮助,我知道如何制作pojo类,这在链接中有解释。但问题在于json具有动态键。若你们知道的话,请帮助我。@SahilPatil你们尝试过hashmap解决方案吗?不要直接问问题。你们必须自己尝试,若你们不能解决这个问题,那个么通过演示提问。看看这个,这可能会对你有所帮助,我知道如何制作pojo类,这在链接中有解释。但问题在于json具有动态键。如果您知道,请帮助我。@SahilPatil您尝试过hashmap解决方案吗?
public class Query {
    private List<Address> normalized ;
    private Map<String, Pages> pages;
    //getter & Setter
    public Map<String, Pages>  getPages() {
        return pages;
    }
    public void setPages(Map<String, Pages>  pages) {
        this.pages = pages;
    }

    public class Pages {
        private String pageid;
        private int ns;
        private String title;
        private String extract;
        //define all getter and setter methods
    }

    public class Address{
    private String from;
    private String to;
    }
}