在非 activity class 中使用 Volley 和 Klaxon
Use Volley and Klaxon in non-activity class
我正在尝试创建一个 class 代表数据库中的 table。
data class MSettings(
var name: String?,
var value: String?,
var Description: String?)
我需要从 api 获取数据。我正在尝试使用 Volley,但 Volley 需要上下文。我无法访问非 activity Class 的上下文。所以,我添加了 var context: Context。好的,它正在工作。
我的 api return 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?
之间做出选择
也许您有其他想法如何完成这一切?
片段从数据中获取数据Class。数据 Class 从 API 获取数据并解析 return JSON。我不知道。
抱歉我的英语不好。
谢谢指教
您看到错误的原因是您将描述字段命名为 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?)
我正在尝试创建一个 class 代表数据库中的 table。
data class MSettings(
var name: String?,
var value: String?,
var Description: String?)
我需要从 api 获取数据。我正在尝试使用 Volley,但 Volley 需要上下文。我无法访问非 activity Class 的上下文。所以,我添加了 var context: Context。好的,它正在工作。 我的 api return 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?
之间做出选择也许您有其他想法如何完成这一切?
片段从数据中获取数据Class。数据 Class 从 API 获取数据并解析 return JSON。我不知道。
抱歉我的英语不好。 谢谢指教
您看到错误的原因是您将描述字段命名为 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?)