【问题标题】:JsonArray with different jsonObjects To ArrayList android using gson [duplicate]具有不同 jsonObjects 的 JsonArray 到 ArrayList android 使用 gson [重复]
【发布时间】:2016-09-05 00:06:05
【问题描述】:

如何使用Gson 将具有多个jsonObjectsjsonArray 转换为arraylist

这是我的 Json 字符串:

[{"AccommoAddress":{  

     "PostalCode":2109,
     "Street":"22 Ararat Str",
     "Town":"Westdene"
  },
  "AccommoDetails":{  
     "AccommoId":0,
     "CleaningService":1,
     "DSTV":1,
     "DedicatedStudyArea":1

  },
  "AccommoID":1,
  "AccommoMainImage":{  
     "CategoryId":0,
     "ContentType":".png",
     "DateUploaded":"2016-07-16",
     "FileSize":2362,
     "ImageCategory":"MAIN",
     "ImageId":1,
     "ImageName":"images.png"
  }]

【问题讨论】:

    标签: java android json arraylist


    【解决方案1】:

    首先,它不是正确的 Json 格式。

    "ImageName":"images.png"

    第二,创建实体

    public class TargetEntity {
    
        private AccommoAddressEntity AccommoAddress;
        private AccommoDetailsEntity AccommoDetails;
        private int AccommoID;
        private AccommoMainImageEntity AccommoMainImage;
    
        public AccommoAddressEntity getAccommoAddress() {
            return AccommoAddress;
        }
    
        public void setAccommoAddress(AccommoAddressEntity AccommoAddress) {
            this.AccommoAddress = AccommoAddress;
        }
    
        public AccommoDetailsEntity getAccommoDetails() {
            return AccommoDetails;
        }
    
        public void setAccommoDetails(AccommoDetailsEntity AccommoDetails) {
            this.AccommoDetails = AccommoDetails;
        }
    
        public int getAccommoID() {
            return AccommoID;
        }
    
        public void setAccommoID(int AccommoID) {
            this.AccommoID = AccommoID;
        }
    
        public AccommoMainImageEntity getAccommoMainImage() {
            return AccommoMainImage;
        }
    
        public void setAccommoMainImage(AccommoMainImageEntity AccommoMainImage) {
            this.AccommoMainImage = AccommoMainImage;
        }
    
        public static class AccommoAddressEntity {
            private int PostalCode;
            private String Street;
            private String Town;
    
            public int getPostalCode() {
                return PostalCode;
            }
    
            public void setPostalCode(int PostalCode) {
                this.PostalCode = PostalCode;
            }
    
            public String getStreet() {
                return Street;
            }
    
            public void setStreet(String Street) {
                this.Street = Street;
            }
    
            public String getTown() {
                return Town;
            }
    
            public void setTown(String Town) {
                this.Town = Town;
            }
        }
    
        public static class AccommoDetailsEntity {
            private int AccommoId;
            private int CleaningService;
            private int DSTV;
            private int DedicatedStudyArea;
    
            public int getAccommoId() {
                return AccommoId;
            }
    
            public void setAccommoId(int AccommoId) {
                this.AccommoId = AccommoId;
            }
    
            public int getCleaningService() {
                return CleaningService;
            }
    
            public void setCleaningService(int CleaningService) {
                this.CleaningService = CleaningService;
            }
    
            public int getDSTV() {
                return DSTV;
            }
    
            public void setDSTV(int DSTV) {
                this.DSTV = DSTV;
            }
    
            public int getDedicatedStudyArea() {
                return DedicatedStudyArea;
            }
    
            public void setDedicatedStudyArea(int DedicatedStudyArea) {
                this.DedicatedStudyArea = DedicatedStudyArea;
            }
        }
    
        public static class AccommoMainImageEntity {
            private int CategoryId;
            private String ContentType;
            private String DateUploaded;
            private int FileSize;
            private String ImageCategory;
            private int ImageId;
            private String ImageName;
    
            public int getCategoryId() {
                return CategoryId;
            }
    
            public void setCategoryId(int CategoryId) {
                this.CategoryId = CategoryId;
            }
    
            public String getContentType() {
                return ContentType;
            }
    
            public void setContentType(String ContentType) {
                this.ContentType = ContentType;
            }
    
            public String getDateUploaded() {
                return DateUploaded;
            }
    
            public void setDateUploaded(String DateUploaded) {
                this.DateUploaded = DateUploaded;
            }
    
            public int getFileSize() {
                return FileSize;
            }
    
            public void setFileSize(int FileSize) {
                this.FileSize = FileSize;
            }
    
            public String getImageCategory() {
                return ImageCategory;
            }
    
            public void setImageCategory(String ImageCategory) {
                this.ImageCategory = ImageCategory;
            }
    
            public int getImageId() {
                return ImageId;
            }
    
            public void setImageId(int ImageId) {
                this.ImageId = ImageId;
            }
    
            public String getImageName() {
                return ImageName;
            }
    
            public void setImageName(String ImageName) {
                this.ImageName = ImageName;
            }
        }
    }
    

    第三

    Gson gson  = new Gson();
    
    TargetEntity[]  target  = gson.fromJson(JsonString,TargetEntity[].class)
    

    【讨论】:

    • 有效吗?如果是这样,请给我正确答案
    • 它可以工作,但是对于 AccommoMainImage 我收到一个空指针异常
    • 非常感谢它的工作我想出了导致空指针异常的原因,我在 recyclerview 上使用滑行所以每次我向下滚动图像加载但当我再次向上滚动时它会导致空指针例外,再次感谢您
    猜你喜欢
    • 2016-08-06
    • 2017-08-15
    • 2014-12-04
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    相关资源
    最近更新 更多