当前位置: 首页 > 知识库问答 >
问题:

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

蒲德曜
2023-03-14

我使用的是registfit的新beta版本(2.0.0-beta),我使用registfit-gson-converter创建一个POJO。

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

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

    private String percentage;

   // Getters + Setters
}

当使用GSON和改型时,这可能吗?

共有1个答案

毛越
2023-03-14

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

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

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

private float percentage;

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

另外,如果您注意到,只将变量的容量和内容的类型指定为浮点,JSON解析器将注意将值解析为预先声明的变量类型。

 类似资料:
  • 问题内容: 有什么方法可以使用反射设置界面字段?当我尝试设置它时,它惊慌地说该值不可寻址。 问题答案: 接口没有字段,它们仅定义包含的值的方法集。在界面上进行反射时,可以使用提取值。 您也不能取消导出字段。您需要大写您的类型的字段名称。遍历字段时,用于测试它们是否可设置。如果该值不可寻址或该值仍在接口中,则也会返回false。 您的代码的有效示例:http : //play.golang.org/

  • 编辑2: 似乎调用实际上是在取消数据库中的字段!但是,调用并没有像预期的那样用空字段刷新POJO。我在之后验证了lastName的为null,但是调用没有使该值为null。

  • 问题内容: 在使用包处理结构字段时遇到了麻烦。特别是,还没有弄清楚如何设置字段值。 获取字段i的名称-这似乎起作用 作为a)接口{},b)int获取字段i的值-这似乎有效 设置字段i的值-尝试一次-紧急 恐慌 :使用未导出字段中获得的值,使用reflect.Value·SetInt 假设它不喜欢字段名称“ id”和“ name”,因此将其重命名为“ Id”和“ Name” a)这个假设正确吗? b

  • 我正在尝试从我的主方法创建一个Spring bean。 我已将此bean配置为具有特定属性。这些值是在由@Configuration注释的SpringConfig类中指定的。 bean是使用Spring Application Context在我的main()方法中创建的。bean成功启动,但它没有我在SpringConfig类中指定的属性。我不明白为什么? 我可能已经确定了问题的原因:这个bea

  • 在做我们的项目时,我在想些什么。Google的GSON API是否使用您想要反序列化的JSON的构造函数?例如: 我有一个JSON字符串,我想把它转换成Employee对象。Employee对象有一个构造函数,它对参数应用一些检查(例如,它的ID是否正确) 链接到GSON:https://github.com/google/gson 编辑:所以在尝试断点之后,我发现构造函数没有被调用。有人知道怎么

  • 我正在使用凌空OkHttp从服务器获取一些数据。 响应是一个包含JSON的字符串,我想使用GSON/POJO解析它。 我得到错误: 预期BEGIN_OBJECT,但在第1行第1列路径$上是STRING 尝试解析时。 原因:java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行第1列路径$ com.google.gson.stream.JsonRead