Используйте залп и клаксон в неактивном классе
Я пытаюсь сделать класс, представляющий таблицу в базе данных.
data class MSettings(
var name: String?,
var value: String?,
var Description: String?)
Мне нужно получить данные из API. Я пытаюсь использовать Volley, но Volley нужен контекст. У меня нет доступа к контексту в неактивном классе. Итак, я добавил var context: Context. Хорошо работает Мой API-интерфейс возвращает JSON: "{" name ":" enable "," value ":" true "," desc ":" description "}" Теперь я хочу проанализировать ответ JSON. Я пытаюсь использовать клаксон:
Klaxon().parse<MSettings>(response)
Но я получаю ошибку:
com.beust.klaxon.KlaxonException: Unable to instantiate MSettings with parameters [name: enable, value: true]
потому что у меня есть MSettings (контекст, имя, значение, desc). Я должен выбрать между получением данных из API и анализировать JSON?
Может быть, у вас есть другая идея, как все это сделать?
Фрагмент получают данные из класса данных. Класс данных получает данные из API и возвращает проанализированный JSON. Понятия не имею.
Извините за мой слабый английский. Спасибо за совет
1 ответ
Причина ошибки, которую вы видите, состоит в том, что вы назвали свое поле описания Description, а не desc, которое является именем, используемым в ответе JSON:
{"name":"enable","value":"true","desc":"description"}"
Поэтому просто измените имя вашего поля Description на desc или добавьте @Json(name = "desc") перед полем Description следующим образом:
data class MSettings(
var name: String?,
var value: String?,
@JSON(name = "desc")
var Description: String?)