无法使用GSON,AutoValue和Retrofit 2反序列化备用名称

时间:2016-08-06 23:13:03

标签: java gson retrofit2 auto-value

我正在使用改进版本2.1.0将JSON反序列化为pojos。 pojo中的字段可以在json中以不同的名称接收。为了正确反序列化字段,我使用@serializedName注释,方法如下:

@AutoValue
public abstract class Media implements Parcelable {

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

// More fields and code

但是,出于某种原因,当生成的JSON在键" title"下面有字段时,Gson会正确读取它,但是当该字段与" name"相关联时键,它不会被读取。

如何在反序列化期间让GSON识别备用名称?

2 个答案:

答案 0 :(得分:1)

我假设你正在使用com.ryanharter.auto.value:auto-value-gson插件。在版本0.4.0之前,对备用序列化名称的支持不是added。更新到com.ryanharter.auto.value:auto-value-gson:0.4.2,然后您应该能够反序名化替代名称。

答案 1 :(得分:-1)

似乎问题与Parcel有关。 你可能想看看这个 parceler

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

}