6

我正在使用改造版本 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 在反序列化期间识别备用名称?

4

2 回答 2

2

我假设您正在使用该com.ryanharter.auto.value:auto-value-gson插件。直到版本 0.4.0才添加对备用序列化名称的支持。更新到com.ryanharter.auto.value:auto-value-gson:0.4.2,然后您应该能够反序列化备用名称。

于 2016-08-11T06:38:44.933 回答
-1

似乎问题与包裹有关。你可能想看看这个 包裹器

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

}
于 2016-08-11T06:55:49.037 回答