У меня есть API, который возвращает объект, начинающийся с цифры, поэтому я не могу правильно проанализировать его с помощью Room в Kotlin.
@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, сделайте то же самое снова, удаляя префикс каждый раз, когда вы сталкиваетесь с ним.
Благодаря Итамару Кербелю это привело меня к этому ответу с использованием перехватчиков: