ROOM 实体 api 字段名称以数字开头
ROOM Entity api field name starts with number
我有一个 API returns 一个以数字开头的对象,所以我无法使用 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,它让我使用拦截器找到了这个答案:
我有一个 API returns 一个以数字开头的对象,所以我无法使用 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,它让我使用拦截器找到了这个答案: