ฉันสามารถรับการแมปรายการเพื่อใช้งานได้โดยใช้@SerializedName
กับทุกช่องเท่านั้น .. ไม่Type
จำเป็นต้องใช้ตรรกะรอบ ๆ
การรันโค้ด - ในขั้นตอนที่ # 4 ด้านล่าง - ผ่านดีบักเกอร์ฉันสังเกตได้ว่าList<ContentImage> mGalleryImages
วัตถุที่เติมข้อมูล JSON
นี่คือตัวอย่าง:
1. JSON
{
"name": "Some House",
"gallery": [
{
"description": "Nice 300sqft. den.jpg",
"photo_url": "image/den.jpg"
},
{
"description": "Floor Plan",
"photo_url": "image/floor_plan.jpg"
}
]
}
2. คลาส Java พร้อมรายการ
public class FocusArea {
@SerializedName("name")
private String mName;
@SerializedName("gallery")
private List<ContentImage> mGalleryImages;
}
3. คลาส Java สำหรับรายการรายการ
public class ContentImage {
@SerializedName("description")
private String mDescription;
@SerializedName("photo_url")
private String mPhotoUrl;
// getters/setters ..
}
4. โค้ด Java ที่ประมวลผล JSON
for (String key : focusAreaKeys) {
JsonElement sectionElement = sectionsJsonObject.get(key);
FocusArea focusArea = gson.fromJson(sectionElement, FocusArea.class);
}