【发布时间】:2020-04-09 00:11:51
【问题描述】:
我正在尝试从 Web 服务读取 json 响应,但没有成功。 这是我收到的 json:
{
"rsp": {
"@code": "0",
"@message": ""
},
"listOfStrings":[]
}
这是我解析响应的相对数据类
data class Response(
val rsp : Rsp,
val listOfStrings : List<String>
)
data class Rsp(
@Json(name = "@code")
val code : String,
@Json(name = "@message")
val message : String
)
但似乎 moshi 出于某种原因它无法将 json 解析为对象,因为我总是得到带有所有空字段的 Response 对象。
那怎么了? json响应字段的“@”字符会不会导致问题?
更新
现在我可以通过将 @Json 注释更改为 @field:Json 来正确解析响应:
data class Rsp(
@field:Json(name = "@code")
val code : String,
@field:Json(name = "@message")
val message : String
)
但我很想知道它为什么有效。
【问题讨论】:
-
因为你没有用正确的
json命名标记rsp -
对不起,这是一个 Typo 错误,json 元素和相关类具有相同的命名
-
哦,比你不需要任何答案吗?在这种情况下,您可以关闭它,或者直接删除它。
-
不,我仍然需要一个答案,我总是得到空字段(我刚刚用正确的类命名编辑了我的问题)。
-
能否请您添加您正在使用的moshi的依赖项?
标签: android kotlin retrofit2 moshi