tôi đã có thể để có được danh sách ánh xạ để làm việc chỉ bằng cách sử dụng @SerializedName
cho tất cả các trường .. không có logic nào xung quanh Type
là cần thiết.
Chạy mã - trong bướC# 4 dưới đây - thông qua trình gỡ lỗi, tôi có thể quan sát rằng đối tượng List<ContentImage> mGalleryImages
dân cư với các dữ liệu JSON
Dưới đây là một ví dụ:
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. lớp Java với Danh mục
public class FocusArea {
@SerializedName("name")
private String mName;
@SerializedName("gallery")
private List<ContentImage> mGalleryImages;
}
3. lớp Java cho các mục Danh sách
public class ContentImage {
@SerializedName("description")
private String mDescription;
@SerializedName("photo_url")
private String mPhotoUrl;
// getters/setters ..
}
đang 4. Java xử lý JSON
for (String key : focusAreaKeys) {
JsonElement sectionElement = sectionsJsonObject.get(key);
FocusArea focusArea = gson.fromJson(sectionElement, FocusArea.class);
}
có thể trùng lặp của [Cách dễ dàng để thay đổi Iterable vào Bộ sưu tập] (http://stackoverflow.com/q/6416706/978917) hoặc [Chuyển đổi Iterator thành ArrayList] (http://stackoverflow.com/q/10117026/978917). – ruakh
@ruakh có nhiều khác biệt giữa câu hỏi đó và câu hỏi này. Cái này liên quan đến 'Gson'. –
@AbelMelquiadesCallejo có một cái nhìn tại answer.I hy vọng nó sẽ giải quyết vấn đề của bạn. – Prateek