Использование @SerializedName с дефисом не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование @SerializedName с дефисом не работает

Сообщение Anonymous »

Я пытаюсь десериализовать этот ответ JSON в объект, и на одном из моих ключей стоит дефис. К сожалению, Kotlin не поддерживает дефисы в именах переменных, поэтому я использовал @SerializedName(), но он все еще работает.
Есть подсказки, почему?
JSON Response< /p>

Код: Выделить всё

[
{
"dateCreated": "07-22-2021",
"comments": "Comment",
"vehicle_type": "Sedan",
"name": "Leagacy Nissan Template",
"template-type": "", //this is giving me the problem
"template_uses_type": "Both"
...
}
]
Мой объект:

Код: Выделить всё

@Serializable
data class SpinDataResponse(
val dateCreated:String,
val comments: String,
val vehicle_type:String,
val name:String,
@SerializedName("template-type") val template_type:String,
val template_uses_type:String,
...
)
Ошибка:

I/System.out: Ошибка: неожиданный токен JSON по смещению 120: обнаружен
неизвестный ключ «тип шаблона».
Используйте «ignoreUnknownKeys = true» в конструкторе «Json {}», чтобы игнорировать неизвестные ключи.
Ввод JSON: ...."name": "Nissan PathFinder", "template-type": "", "template_.....

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

Подробнее здесь: https://stackoverflow.com/questions/702 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»