如何在 moshi (kotlin) 中解析 LinkedHashMap
Posted
技术标签:
【中文标题】如何在 moshi (kotlin) 中解析 LinkedHashMap【英文标题】:How to parse LinkedHashMap in moshi (kotlin) 【发布时间】:2021-05-15 11:14:42 【问题描述】:我正在尝试为以下 json 创建一个 JSON 适配器
"message":
"affenpinscher": [],
"african": [],
"airedale": [],
"akita": [],
"appenzeller": [],
"australian": [
"shepherd"
]
,
"status": "success"
我已经尝试了以下
@JsonClass(generateAdapter = true)
data class BreedList(
val message: HashMap<String,List<String>> = HashMap<String,List<String>>()
)
和
@JsonClass(generateAdapter = true)
data class BreedList(
val message: Breed
)
@JsonClass(generateAdapter = true)
data class Breed(
val breed: List<String>
)
但这两种情况都给我错误,有没有办法解析以下对象,我需要键以及响应中的列表
【问题讨论】:
【参考方案1】:无需创建自定义适配器。
解析您发布的 JSON:
data class Base (
@field:Json(name = "message")
val message : Message,
@field:Json(name = "status")
val status : String
)
data class Message (
@field:Json(name = "affenpinscher")
val affenpinscher : List<String>,
@field:Json(name = "african")
val african : List<String>,
@field:Json(name = "airedale")
val airedale : List<String>,
@field:Json(name = "akita")
val akita : List<String>,
@field:Json(name = "appenzeller")
val appenzeller : List<String>,
@field:Json(name = "australian")
val australian : List<String>
)
注意:您可以使用您需要的任何数据类型或创建自定义类,如 Message,而不是 String。
【讨论】:
以上是关于如何在 moshi (kotlin) 中解析 LinkedHashMap的主要内容,如果未能解决你的问题,请参考以下文章