Используйте залп и клаксон в неактивном классе - PullRequest
0 голосов
/ 05 февраля 2019

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

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:

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 Ответ

0 голосов
/ 14 февраля 2019

Причина ошибки, которую вы видите, заключается в том, что вы назвали свое поле описания Описание , а не desc , которое является именем, используемым в ответе JSON:

{"name":"enable","value":"true","desc":"description"}" 

Так что просто измените имя вашего поля Описание на desc или добавьте @Json (name = "desc") перед вашим Описание какэто:

data class MSettings(
var name: String?,
var value: String?,
@JSON(name = "desc")
var Description: String?)
...