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

标签 java gson retrofit2 auto-value

我正在使用改造版本 2.1.0 将 JSON 反序列化为 pojo。可以在 json 中以不同名称接收 pojo 中的字段。为了正确反序列化该字段,我按以下方式使用了@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 在反序列化过程中识别备用名称?

最佳答案

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

关于java - 无法使用 GSON、AutoValue 和 Retrofit 2 反序列化备用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809529/

相关文章:

java - 如何检查舍入误差?

java - Spring boot - 使用 @PropertySource 记录到文件不起作用

android - 改造 body 返回空

java - 如何使用 GSON 反序列化不同类型的数组

android - 无法在 Android 中使用改造在多部分/表单数据请求中上传多个文件或文件集合

java - 在运行 elasticsearch 集群时获取 Perm Gen 空间问题

java - 在 eclipse 中同时运行 32 位 jvm 和 64 位 jvm

java - 当 Gson 反序列化 JSON 时可以使用 setter 吗?

android - 将 Jsoup 请求转换为 retrofit2

java - 使用 rxjava2+retrofit 的多处理或多线程不起作用