使用GSON和Retrofit构造时设置POJO的字段值

时间:2015-10-28 14:13:59

标签: android gson retrofit

我正在使用Retrofit(2.0.0-beta)的新测试版,我使用Retrofit-GSON转换器来创建POJO。

假设我有以下课程:

public class Unit {
    @SerializedName("capacity")
    @Expose
    private String capacity;

    @SerializedName("content")
    @Expose
    private String content;

    private String percentage;

   // Getters + Setters
}

现在当我使用改装调用来获取模型时,它会毫无错误地进行解析,并且我得到一个List<Units>,其中设置了内容和容量,但百分比为null

我想要的是在构造对象后将percentage的值设置为capacity / content,这样我就不必手动执行。

将GSON与Retrofit结合使用时可以做到这一点吗?

1 个答案:

答案 0 :(得分:2)

为什么不在字段百分比的getter下添加容量/内容的逻辑?

@SerializedName("capacity")
@Expose
private float capacity;

@SerializedName("content")
@Expose
private float content;

private float percentage;

public float getPercentage(){ 
   return capacity / content; 
}

另外,如果您注意到,请将变量类型和内容仅作为浮点数提供,JSON解析器将注意将值解析为变量的预先声明的类型。