【问题标题】:Request in Retrofit returns inappropriate dataRetrofit 中的请求返回不适当的数据
【发布时间】:2020-02-27 06:48:46
【问题描述】:

我的问题是我在 Android 应用程序中发出一个应该返回 BigDecimal 的请求,但我得到了 2.0E7 值。我尝试在 Postman 中提出这个请求,它返回 20000000(正确值)。我将数据类中的值类型更改为 BigDecimal 和 String,在这两种情况下我都得到了 2.0E7。我需要得到正确的值。有人可以帮忙解决这个问题吗?

【问题讨论】:

  • 你在用gson转换器吗?
  • 是的,我正在使用 gson 转换器
  • Gson 有这个问题,请参阅 github.com/google/gson/issues/968 。有一些解决方法,例如 this 。使用 jackson 或 moshi 转换器而不是 gson

标签: android types type-conversion


【解决方案1】:

您可以使用 Long 类型 (20000000)。

在我的项目中,我低于 json,我在模型类中使用了长类型

JSON

{
    "success": {
        "value": 20000000
    }
}

模型类

public class Success {

    @SerializedName("value")
    @Expose
    private Long value;

    public Long getValue() {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }

}

【讨论】:

  • 没有帮助我
【解决方案2】:

【讨论】:

  • 我使用了String,但它仍然返回2.0E7
  • 我之前也遇到过同样的问题,只是把它的类型改成字符串类型就解决了。
猜你喜欢
  • 2019-09-21
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
相关资源
最近更新 更多