在非活动类中使用凌空抽射和克拉克森



我正在尝试创建一个表示数据库中表的类。

data class MSettings(
var name: String?,
var value: String?,
var Description: String?)

我需要从 API 获取数据。我正在尝试使用凌空抽射,但凌空需要上下文。我无法访问非活动类中的上下文。因此,我添加了var上下文:上下文。好的,它正在工作。我的 api 返回 JSON: "{"名称":"启用","值":"true","desc":"description"}"现在我想要解析响应 JSON。我正在尝试使用克拉克森:

Klaxon().parse<MSettings>(response)

但是我得到错误:

com.beust.klaxon.KlaxonException: Unable to instantiate MSettings with parameters [name: enable, value: true]

因为我有 MSettings(上下文,名称,值,描述(。我必须在从 API 获取数据和解析 JSON 之间进行选择?

也许您有另一个想法如何做到这一点?

片段从数据类获取数据。 数据类从 API 获取数据并返回解析的 JSON。我不知道。

对不起,我的英语很弱。感谢您的建议

您看到错误的原因是您已将描述字段命名为 Description,而不是 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?)

最新更新