我正在使用改进版本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识别备用名称?
答案 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();
}