2017-10-29 167 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

相关问题