How to make POJO class for JSON

时光毁灭记忆、已成空白 提交于 2019-12-13 09:55:25

问题


How should I make POJO class? Object may have unlimited array.

This is my JSON,

{
    "result": {
        "0": [{
            "id": "51",
            "first_name": "ra",
            "last_name": "d",
            "email": "raj@gmail.com",
            "password": "1234",
            "mobile_no": "8252536365",
            "parent_id": "50",
            "position": "0",
            "type": "User",
            "created_at": "1476447434",
            "updated_at": "1476447434",
            "deleted_at": null,
            "stage": 0,
            "total_childs": 0
        }, {
            "id": "52",
            "first_name": "Ashish",
            "last_name": "Chauhan",
            "email": "ashish@mlm.com",
            "password": "12345",
            "mobile_no": "89889989832",
            "parent_id": "8",
            "position": "1",
            "type": "admin",
            "created_at": "1476702542",
            "updated_at": "1476702542",
            "deleted_at": null,
            "stage": 0,
            "total_childs": 0
        }],
        "2": [{
            "id": "2",
            "first_name": "Ashish",
            "last_name": "Chauhan",
            "email": "ashish@mlm.com",
            "password": "12345",
            "mobile_no": "89889989832",
            "parent_id": "1",
            "position": "0",
            "type": "admin",
            "created_at": "1475674631",
            "updated_at": "1475674631",
            "deleted_at": null,
            "stage": 2,
            "total_childs": 2
        }],
        "1": [{
            "id": "7",
            "first_name": "Shiva",
            "last_name": "Singh",
            "email": "shiva@mlm.com",
            "password": "12345",
            "mobile_no": "89889989832",
            "parent_id": "2",
            "position": "0",
            "type": "user",
            "created_at": "1475674808",
            "updated_at": "1475674808",
            "deleted_at": null,
            "stage": 1,
            "total_childs": 2
        }, {
            "id": "8",
            "first_name": "Atul",
            "last_name": "Kumar",
            "email": "atul@mlm.com",
            "password": "12345",
            "mobile_no": "89889989832",
            "parent_id": "2",
            "position": "1",
            "type": "user",
            "created_at": "1475674835",
            "updated_at": "1475674835",
            "deleted_at": null,
            "stage": 1,
            "total_childs": 2
        }]
    }
}

回答1:


If you are trying to form json response schema for retrofit:

public class MyPojo            
{
    private String position;

    private null deleted_at;

    private String type;

    private String stage;

    private String password;

    private String id;

    private String first_name;

    private String total_childs;

    private String updated_at;

    private String email;

    private String last_name;

    private String created_at;

    private String mobile_no;

    private String parent_id;

    public String getPosition ()
    {
        return position;
    }

    public void setPosition (String position)
    {
        this.position = position;
    }

    public null getDeleted_at ()
    {
        return deleted_at;
    }

    public void setDeleted_at (null deleted_at)
    {
        this.deleted_at = deleted_at;
    }

    public String getType ()
    {
        return type;
    }

    public void setType (String type)
    {
        this.type = type;
    }

    public String getStage ()
    {
        return stage;
    }

    public void setStage (String stage)
    {
        this.stage = stage;
    }

    public String getPassword ()
    {
        return password;
    }

    public void setPassword (String password)
    {
        this.password = password;
    }

    public String getId ()
    {
        return id;
    }

    public void setId (String id)
    {
        this.id = id;
    }

    public String getFirst_name ()
    {
        return first_name;
    }

    public void setFirst_name (String first_name)
    {
        this.first_name = first_name;
    }

    public String getTotal_childs ()
    {
        return total_childs;
    }

    public void setTotal_childs (String total_childs)
    {
        this.total_childs = total_childs;
    }

    public String getUpdated_at ()
    {
        return updated_at;
    }

    public void setUpdated_at (String updated_at)
    {
        this.updated_at = updated_at;
    }

    public String getEmail ()
    {
        return email;
    }

    public void setEmail (String email)
    {
        this.email = email;
    }

    public String getLast_name ()
    {
        return last_name;
    }

    public void setLast_name (String last_name)
    {
        this.last_name = last_name;
    }

    public String getCreated_at ()
    {
        return created_at;
    }

    public void setCreated_at (String created_at)
    {
        this.created_at = created_at;
    }

    public String getMobile_no ()
    {
        return mobile_no;
    }

    public void setMobile_no (String mobile_no)
    {
        this.mobile_no = mobile_no;
    }

    public String getParent_id ()
    {
        return parent_id;
    }

    public void setParent_id (String parent_id)
    {
        this.parent_id = parent_id;
    }

}

Then in your api call:

Call<ResultResponse> xyz=interfacexyz.getResults(new Callback(...))

And you can define resultResponse as:

ResultRespone.java:

public class ResultRespone
{
    @SerializedName("results")
    List<Map<string,MyPojo>>  resultList;
    // define getters and setters
    ....
    ....
}

then you can access individual results as:

ResultResponse=response.body();
ResultResponse.get(0);//to get element at 0th position



回答2:


You have dynamic keys in your JSON as "1", "2", "3" and so on.. So you have to use conecpt of key. Use JSONObject keys() to get the key and then iterate each key to get to the dynamic value.

This example will help you to understand what do you want to do .



来源:https://stackoverflow.com/questions/40255024/how-to-make-pojo-class-for-json

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!