Имя поля api ROOM Entity начинается с номера - PullRequest
0 голосов
/ 20 мая 2019

У меня есть API, который возвращает объект, который начинается с числа, поэтому я не могу правильно проанализировать его с помощью Room in Kotlin.

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

Данные получены:

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

Есть ли способ заставить эту работу?

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Благодаря Итамару Кербелю он привел меня к этому ответу с помощью перехватчиков:

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

0 голосов
/ 20 мая 2019

Как вы, наверное, знаете, Java и Kotlin не могут обрабатывать имена переменных, начинающиеся с цифры.Проблема заключается в том, что это приведет к таким вещам, как:

int 12 = 14 // ????

или

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

Поскольку вы используете API, я предполагаю, что вы получаете данные JSON,Я предлагаю вам пересмотреть данные и отсканировать их на наличие подобных проблем.Если вы столкнетесь с добавлением уникального префикса к нему и только потом сохраните.Если вам позже потребуется сериализовать данные обратно в API, повторите то же самое, удаляя префикс каждый раз, когда вы сталкиваетесь с ним.

...