2017-10-29 166 views
0

我試圖通過改造來檢索對象的列表:爲什麼Retrofit&Gson會返回LinkedTreeMap的列表而不是我的預期類型?

public interface TemplateApi { 
    @GET("/api/templates") 
    Observable<List<TemplateDto>> getList(); 
} 

這裏的DTO:

public class TemplateDto { 
    public String id; 
    public String name; 

    @Override 
    public String toString() { 
     return this.name; 
    } 
} 

而不是預期的名單,我得到一個

List<LinkedTreeMap> 

導致奇怪的副作用(在我的情況下toString()返回不是我所期望的)

回答

0

好吧,我發現它 - Android真的沒有最平坦的學習曲線...

這個問題不是與改造或Gson本身,但它是縮小(Proguard)。 Proguard需要在默認情況下稱爲「proguard-rules.pro」的文件中進行配置。

添加以下行:

-keepattributes Signature 
-keepattributes *Annotation* 
-keep class com.myproject.dtos.** { *; } 

感謝this answer

相關問題