Используйте залп и клаксон в неактивном классе

Я пытаюсь сделать класс, представляющий таблицу в базе данных.

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?)
Другие вопросы по тегам