ArrayList不能设置为模型类

时间:2018-05-03 07:19:27

标签: android json getter-setter

我是android新手。我有JSONArray包含图片和其他属性。我正在尝试将其设置为模型类。

MenuContent singleItem = new MenuContent();
singleItem.setContent(mContentJsonObject.getString(AppConstants.APIKeys.CONTENT));
singleItem.setContentId(mContentJsonObject.getString(AppConstants.APIKeys.PARAGRAPH_ID));
singleItem.setChapterId(mContentJsonObject.getString(AppConstants.APIKeys.CHAPTER_ID));
singleItem.setClassId(getSharedPreference(AppConstants.APIKeys.CLASS_ID));
singleItem.setLanguageId(getSharedPreference(AppConstants.APIKeys.LANGUAGE_ID));
JSONArray mGalleryimages = mContentJsonObject.getJSONArray(AppConstants.APIKeys.PARAGRAPH_GALLERY_IMAGES);
for (int k = 0; k < mGalleryimages.length(); k++) {
    JSONObject mGallerycontent=mGalleryimages.getJSONObject(k);
    ImageGallery imageGallery = new ImageGallery();
    imageGallery.setImageId(String.valueOf(k));
    imageGallery.setImagePath(mGallerycontent.getString(AppConstants.APIKeys.PARAGRAPH_GALLERY_CONTENT));
    array_image.add(imageGallery);

}
singleItem.setImageGallery(array_image);
singleItem.save();
mParagraphsList.add(singleItem);

问题是我可以将除galleryimages数组之外的所有属性设置为模型类。但是setImageGallery只是不起作用。我在调试时得到null。这是MenuContent模型类片段

ArrayList <ImageGallery> imageGallery;
public ArrayList<ImageGallery> getImageGallery() {
    return imageGallery;
}

public void setImageGallery(ArrayList<ImageGallery> imageGallery) {
    this.imageGallery = imageGallery;
}

ImageGallery模型类代码段

public void setImagePath(String imagePath) {
    this.imagePath = imagePath;
}
public String getImagePath() {
    return imagePath;
}

有谁能告诉我这是什么问题?感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

此代码可以转换为2行,众所周知Google Gson Library

瞥一眼。

Type listType = new TypeToken<List<MenuContent>>() {}.getType();
List<MenuContent> yourList = new Gson().fromJson(yourJson, listType);

您不必编写使用密钥解析的长代码。