can';是否将json转换为java pojo类?

can';是否将json转换为java pojo类?,java,android,json,retrofit,Java,Android,Json,Retrofit,我想将这个JSON转换成一个列表并插入到RecyclerView中,但我不能,因为它给了我3个类。 那么我如何将这个类转换为父类呢;有人能帮我吗?这样我就可以把回复列表放到RecyclerView中 [ { "id": 114, "name_ar": "محمصه زين", "latitude": null, "longitude": null, "name_en": "Mohamsa Zein",

我想将这个JSON转换成一个列表并插入到RecyclerView中,但我不能,因为它给了我3个类。 那么我如何将这个类转换为父类呢;有人能帮我吗?这样我就可以把回复列表放到RecyclerView中

[
    {
        "id": 114,
        "name_ar": "محمصه زين",
        "latitude": null,
        "longitude": null,
        "name_en": "Mohamsa Zein",
        "description_ar": "",
        "description_en": "",
        "phone": null,
        "mobile": "01110881085",
        "address_ar": "مدينتى، Egypt",
        "address_en": "مدينتى، Egypt",
        "photo": "5b7958dc1c3661534679260.jpg",
        "album": null,
        "created_at": {
            "date": "2018-08-19 11:47:40.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "updated_at": {
            "date": "2018-10-23 11:00:22.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    },
    {
        "id": 184,
        "name_ar": "محل عصائر فيرتاس",
        "latitude": null,
        "longitude": null,
        "name_en": "Varieties For Juice",
        "description_ar": "",
        "description_en": "",
        "phone": null,
        "mobile": "01024229935",
        "address_ar": "مدينتى، Egypt",
        "address_en": "مدينتى، Egypt",
        "photo": null,
        "album": null,
        "created_at": {
            "date": "2018-10-28 11:40:54.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "updated_at": {
            "date": "2019-01-02 08:36:04.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    }
]

我的做法是:

使用GSON库

我创建了两个模型类

  • 包含每个数组项信息的主类
  • 一个自定义日期类,它将包含您的
    处创建,而
    处更新属性

    类MyDate{
    公共字符串日期;
    公共国际时区_类型;
    公共字符串时区
    }

    类信息{
    公共字符串id;
    公共字符串名称;
    ..//其他属性/。。
    在创建的公共MyDate;
    公共MyDate更新于;
    }

  • 然后将json解析为Info类的数组列表

    List<Info> infoArray = new Gson().fromJson(stringJson, new TypeToken<List<Info>>(){}.getType());
    
    List infoArray=new Gson().fromJson(stringJson,new TypeToken(){}.getType());
    
    如果我正确理解了你的问题,我相信这就是你的意思。请用这个

    public  class TestRequest {
    
        private UpdatedAtEntity updatedAt;
        private CreatedAtEntity createdAt;
        private String photo;
        private String addressEn;
        private String addressAr;
        private String mobile;
        private String descriptionEn;
        private String descriptionAr;
        private String nameEn;
        private String nameAr;
        private int id;
    
        public UpdatedAtEntity getUpdatedAt() {
            return updatedAt;
        }
    
        public void setUpdatedAt(UpdatedAtEntity updatedAt) {
            this.updatedAt = updatedAt;
        }
    
        public CreatedAtEntity getCreatedAt() {
            return createdAt;
        }
    
        public void setCreatedAt(CreatedAtEntity createdAt) {
            this.createdAt = createdAt;
        }
    
        public String getPhoto() {
            return photo;
        }
    
        public void setPhoto(String photo) {
            this.photo = photo;
        }
    
        public String getAddressEn() {
            return addressEn;
        }
    
        public void setAddressEn(String addressEn) {
            this.addressEn = addressEn;
        }
    
        public String getAddressAr() {
            return addressAr;
        }
    
        public void setAddressAr(String addressAr) {
            this.addressAr = addressAr;
        }
    
        public String getMobile() {
            return mobile;
        }
    
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        public String getDescriptionEn() {
            return descriptionEn;
        }
    
        public void setDescriptionEn(String descriptionEn) {
            this.descriptionEn = descriptionEn;
        }
    
        public String getDescriptionAr() {
            return descriptionAr;
        }
    
        public void setDescriptionAr(String descriptionAr) {
            this.descriptionAr = descriptionAr;
        }
    
        public String getNameEn() {
            return nameEn;
        }
    
        public void setNameEn(String nameEn) {
            this.nameEn = nameEn;
        }
    
        public String getNameAr() {
            return nameAr;
        }
    
        public void setNameAr(String nameAr) {
            this.nameAr = nameAr;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public static class UpdatedAtEntity {
            private String timezone;
            private int timezoneType;
            private String date;
    
            public String getTimezone() {
                return timezone;
            }
    
            public void setTimezone(String timezone) {
                this.timezone = timezone;
            }
    
            public int getTimezoneType() {
                return timezoneType;
            }
    
            public void setTimezoneType(int timezoneType) {
                this.timezoneType = timezoneType;
            }
    
            public String getDate() {
                return date;
            }
    
            public void setDate(String date) {
                this.date = date;
            }
        }
    
        public static class CreatedAtEntity {
            private String timezone;
            private int timezoneType;
            private String date;
    
            public String getTimezone() {
                return timezone;
            }
    
            public void setTimezone(String timezone) {
                this.timezone = timezone;
            }
    
            public int getTimezoneType() {
                return timezoneType;
            }
    
            public void setTimezoneType(int timezoneType) {
                this.timezoneType = timezoneType;
            }
    
            public String getDate() {
                return date;
            }
    
            public void setDate(String date) {
                this.date = date;
            }
        }
    
        @Override
        public String toString() {
            return "TestRequest{" +
                    "updatedAt=" + updatedAt +
                    ", createdAt=" + createdAt +
                    ", photo='" + photo + '\'' +
                    ", addressEn='" + addressEn + '\'' +
                    ", addressAr='" + addressAr + '\'' +
                    ", mobile='" + mobile + '\'' +
                    ", descriptionEn='" + descriptionEn + '\'' +
                    ", descriptionAr='" + descriptionAr + '\'' +
                    ", nameEn='" + nameEn + '\'' +
                    ", nameAr='" + nameAr + '\'' +
                    ", id=" + id +
                    '}';
        }
    }
    

    像这样创建pojo类

    public abstract class TempClass {
    
        @Expose
        @SerializedName("updated_at")
        private UpdatedAt updatedAt;
        @Expose
        @SerializedName("created_at")
        private CreatedAt createdAt;
        @Expose
        @SerializedName("photo")
        private String photo;
        @Expose
        @SerializedName("address_en")
        private String addressEn;
        @Expose
        @SerializedName("address_ar")
        private String addressAr;
        @Expose
        @SerializedName("mobile")
        private String mobile;
        @Expose
        @SerializedName("description_en")
        private String descriptionEn;
        @Expose
        @SerializedName("description_ar")
        private String descriptionAr;
        @Expose
        @SerializedName("name_en")
        private String nameEn;
        @Expose
        @SerializedName("name_ar")
        private String nameAr;
        @Expose
        @SerializedName("id")
        private int id;
    
        public UpdatedAt getUpdatedAt() {
            return updatedAt;
        }
    
        public void setUpdatedAt(UpdatedAt updatedAt) {
            this.updatedAt = updatedAt;
        }
    
        public CreatedAt getCreatedAt() {
            return createdAt;
        }
    
        public void setCreatedAt(CreatedAt createdAt) {
            this.createdAt = createdAt;
        }
    
        public String getPhoto() {
            return photo;
        }
    
        public void setPhoto(String photo) {
            this.photo = photo;
        }
    
        public String getAddressEn() {
            return addressEn;
        }
    
        public void setAddressEn(String addressEn) {
            this.addressEn = addressEn;
        }
    
        public String getAddressAr() {
            return addressAr;
        }
    
        public void setAddressAr(String addressAr) {
            this.addressAr = addressAr;
        }
    
        public String getMobile() {
            return mobile;
        }
    
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        public String getDescriptionEn() {
            return descriptionEn;
        }
    
        public void setDescriptionEn(String descriptionEn) {
            this.descriptionEn = descriptionEn;
        }
    
        public String getDescriptionAr() {
            return descriptionAr;
        }
    
        public void setDescriptionAr(String descriptionAr) {
            this.descriptionAr = descriptionAr;
        }
    
        public String getNameEn() {
            return nameEn;
        }
    
        public void setNameEn(String nameEn) {
            this.nameEn = nameEn;
        }
    
        public String getNameAr() {
            return nameAr;
        }
    
        public void setNameAr(String nameAr) {
            this.nameAr = nameAr;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public static class UpdatedAt {
            @Expose
            @SerializedName("timezone")
            private String timezone;
            @Expose
            @SerializedName("timezone_type")
            private int timezoneType;
            @Expose
            @SerializedName("date")
            private String date;
    
            public String getTimezone() {
                return timezone;
            }
    
            public void setTimezone(String timezone) {
                this.timezone = timezone;
            }
    
            public int getTimezoneType() {
                return timezoneType;
            }
    
            public void setTimezoneType(int timezoneType) {
                this.timezoneType = timezoneType;
            }
    
            public String getDate() {
                return date;
            }
    
            public void setDate(String date) {
                this.date = date;
            }
        }
    
        public static class CreatedAt {
            @Expose
            @SerializedName("timezone")
            private String timezone;
            @Expose
            @SerializedName("timezone_type")
            private int timezoneType;
            @Expose
            @SerializedName("date")
            private String date;
    
            public String getTimezone() {
                return timezone;
            }
    
            public void setTimezone(String timezone) {
                this.timezone = timezone;
            }
    
            public int getTimezoneType() {
                return timezoneType;
            }
    
            public void setTimezoneType(int timezoneType) {
                this.timezoneType = timezoneType;
            }
    
            public String getDate() {
                return date;
            }
    
            public void setDate(String date) {
                this.date = date;
            }
        }
    }
    
    现在像这样访问内部类。请在下面查看

    ArrayList<TempClass> item = new ArrayList<>();
    
    item.get(holder.getAdapterPosition()).getUpdatedAt().getDate();//here access the UpdatedAt class object method. 
    
    item.get(holder.getAdapterPosition()).getCreatedAt().getDate();// here access the CreatedAt class object method.
    
    ArrayList item=new ArrayList();
    item.get(holder.getAdapterPosition()).getUpdatedAt().getDate()//这里访问UpdatedAt类对象方法。
    item.get(holder.getAdapterPosition()).getCreatedAt().getDate();//这里访问CreatedAt类对象方法。
    
    您所说的三(3)类是什么意思?它是一个数组,上面有两个对象。你能提供你的类的信息吗?@MetaSnarf当我试图在这个网站上转换它时,它给了我3个类试试看!它将为您提供三个类,其中一个是整个响应的类,另外两个是创建并更新的类_at@RakshitNawani是的,我知道,我需要做的是让一个家长给我完整的答案!你知道怎么做吗!如何制作包含id和名称的父数组。。ect@MohamedElFwakhry如果您的响应类名是Info,那么将其作为List@MohamedElFwakhry,父数组将是
    Info
    类。请注意,它包含
    MyDate
    类类型的
    创建的属性和
    更新的属性。