【问题标题】:Why does Retrofit & Gson return a List of LinkedTreeMap instead of my expected type?为什么 Retrofit & Gson 返回 LinkedTreeMap 列表而不是我预期的类型?
【发布时间】:2018-04-10 10:33:36
【问题描述】:

我正在尝试通过 Retrofit 检索对象列表:

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() 返回的结果不是我所期望的)

【问题讨论】:

    标签: java android gson retrofit2 proguard


    【解决方案1】:

    好的,我发现了 - Android 确实没有最平坦的学习曲线...

    问题不在于 Retrofit 或 Gson 本身,而在于缩小器(Proguard)。 Proguard 需要在一个名为“proguard-rules.pro”的文件中默认配置。

    添加以下行:

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

    感谢this answer

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 2014-04-09
      • 2021-01-06
      相关资源
      最近更新 更多