我有一个返回以数字开头的对象的 API,因此我无法使用 Kotlin 中的 Room 正确解析它。
@Entity(tableName = "1d")
data class 1D(
@SerializedName("percent")
val percent: Double?
)
收到的数据:
"1d":
{"percent":"22.0"}
有没有办法使这项工作?
我有一个返回以数字开头的对象的 API,因此我无法使用 Kotlin 中的 Room 正确解析它。
@Entity(tableName = "1d")
data class 1D(
@SerializedName("percent")
val percent: Double?
)
收到的数据:
"1d":
{"percent":"22.0"}
有没有办法使这项工作?
您可能知道 Java 和 Kotlin 无法处理以数字开头的变量名。问题来自这样一个事实,它会导致以下结果:
int 12 = 14 // ????
或者
int 7f = 8 // again 7 float is 8...
由于您使用的是 API,我猜您正在获取 JSON 数据。我建议你遍历数据并扫描这些问题。如果您遇到为其添加唯一前缀,然后才保存。如果您以后需要将数据序列化回 API,请再次执行相同操作,同时在每次遇到前缀时删除前缀。
感谢 Itamar Kerbel,它使用拦截器引导我得到这个答案: