【问题标题】:Extract data from json to a kotlin data class从 json 中提取数据到 kotlin 数据类
【发布时间】:2020-10-20 14:48:29
【问题描述】:

我必须在我的应用程序中使用一个 json 文件,并且我已经定义了一个不同的数据类来表示数据本身。 json 本地存储在应用程序中。

json 看起来像:

[
   {
      "id":987847,
      "type":"FixtureUpcoming",
      "homeTeam":{
         "id":43,
         "name":"Manchester City",
         "shortName":"Man City",
         "abbr":"MNC",
         "alias":"t43"
      },
      "awayTeam":{
         "id":8,
         "name":"Chelsea",
         "shortName":"Chelsea",
         "abbr":"CHL",
         "alias":"t8"
      },
      "date":"2019-02-10T16:00:00.000Z",
      "competitionStage":{
         "competition":{
            "id":8,
            "name":"Premier League"
         }
      },
      "venue":{
         "id":2691,
         "name":"Etihad Stadium"
      },
      "state":"preMatch"
   },
   {
      "id":1036495,
      "type":"FixtureUpcoming",
      "homeTeam":{
...
]

所以我创建了一个数据类,它代表这个数组的一个元素,如下所示:

data class FixtureItem(
        var id: Int,
        var type: String,
        var homeTeam: Team,
        var awayTeam: Team,
        var date: String,
        var competitionStage: List<Competition>,
        var venue: Venue,
        var state: String
)

还有一些其他元素也是定义的类,例如TeamVenue..

data class Team(
     var id: Int,
     var name: String,
     var shortName: String,
     var abbr: String,
     var alias: String
)

使用数据类翻译此 json 的最佳方法是什么?总的来说,这个 json 显示在一个回收视图中。

知道如何正确提取它并在 recyclerview 中使用它吗?

谢谢

【问题讨论】:

  • 无论你做什么对我来说都是完美的。此外,场地可以为空,以防万一而不是使其可为空

标签: android json kotlin gson


【解决方案1】:

我个人会使用MoshiKotlinX Serialization 将您的数据解析为对象

Moshi 添加了一些使用 kotlin 所需的额外依赖项,并且 KotlinX 序列化是由 kotlin 团队在 100% kotlin 中进行的,如果有兴趣的话,它还支持 kotlin 多平台。然而,它相当新,几周前刚刚发布了 1.0。

无论如何都不会出错

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2023-04-07
    • 2017-07-07
    • 1970-01-01
    相关资源
    最近更新 更多