【问题标题】:How to parse LinkedHashMap in moshi (kotlin)如何在 moshi (kotlin) 中解析 LinkedHashMap
【发布时间】: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>
)

但这两种情况都给我错误,有没有办法解析以下对象,我需要键以及响应中的列表

【问题讨论】:

    标签: kotlin retrofit moshi


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 2022-08-17
      • 2018-03-02
      • 2018-07-23
      • 2017-06-15
      • 1970-01-01
      相关资源
      最近更新 更多