【问题标题】:Use Volley and Klaxon in non-activity class在非活动课上使用 Volley 和 Klaxon
【发布时间】:2019-02-05 20:34:25
【问题描述】:

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

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(context,name,value,desc)。 我必须在从 API 获取数据和解析 JSON 之间做出选择吗?

也许你有另一个想法如何做到这一切?

Fragment 从 Data Class 中获取数据。数据类从 API 获取数据并返回解析的 JSON。没想到。

对不起,我的英语不好。 谢谢建议

【问题讨论】:

    标签: java android-studio kotlin android-volley klaxon


    【解决方案1】:

    您看到错误的原因是您将描述字段命名为 Description,而不是 desc,后者是 JSON 响应中使用的名称:

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

    因此,只需将您的字段名称 Description 更改为 desc 或在您的 Description 之前添加 @Json(name = "desc")像这样的字段:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      相关资源
      最近更新 更多