2016-08-06 23 views
6

Tôi đang sử dụng trang bị thêm phiên bản 2.1.0 để deserialize JSON vào pojos. Một lĩnh vực trong pojo có thể được nhận dưới các tên khác nhau trong json. Để deserialize lĩnh vực này một cách chính xác, tôi đã sử dụng chú thích @serializedName theo cách sau:Không thể deserialize tên thay thế với GSON, AutoValue, và trang bị thêm 2

@AutoValue 
public abstract class Media implements Parcelable { 

    @SerializedName(value = "title", alternate = {"name"}) 
    public abstract String title(); 

// More fields and code 

Tuy nhiên, đối với một số lý do, khi kết quả JSON có lĩnh vực này dưới sự chủ chốt "danh hiệu", Gson đọc nó một cách chính xác, nhưng khi trường được liên kết với khóa "tên", nó không được đọc.

Làm cách nào để GSON nhận ra tên thay thế trong quá trình deserialization?

Trả lời

1

Tôi giả sử bạn đang sử dụng plugin com.ryanharter.auto.value:auto-value-gson. Hỗ trợ cho các tên tuần tự thay thế không phải là added cho đến phiên bản 0.4.0. Cập nhật thành com.ryanharter.auto.value:auto-value-gson:0.4.2 và sau đó bạn sẽ có thể deserialize tên thay thế.

-1

Dường như vấn đề có liên quan đến Bưu kiện. Bạn có thể muốn xem điều này parceler

@AutoValue 
@Parcel 
public abstract class Media { 
    @ParcelProperty("title") public abstract String title(); 

} 
Các vấn đề liên quan