0

我有一个返回以数字开头的对象的 API,因此我无法使用 Kotlin 中的 Room 正确解析它。

@Entity(tableName = "1d")
data class 1D(
        @SerializedName("percent")
        val percent: Double?
)

收到的数据:

"1d":
{"percent":"22.0"}

有没有办法使这项工作?

4

2 回答 2

0

您可能知道 Java 和 Kotlin 无法处理以数字开头的变量名。问题来自这样一个事实,它会导致以下结果:

int 12 = 14 // ????

或者

int 7f = 8 // again 7 float is 8...

由于您使用的是 API,我猜您正在获取 JSON 数据。我建议你遍历数据并扫描这些问题。如果您遇到为其添加唯一前缀,然后才保存。如果您以后需要将数据序列化回 API,请再次执行相同操作,同时在每次遇到前缀时删除前缀。

于 2019-05-20T08:29:58.870 回答
0

感谢 Itamar Kerbel,它使用拦截器引导我得到这个答案:

https://stackoverflow.com/a/43651958/666661

于 2019-05-20T23:45:47.877 回答