gson 将数据从json提取到Kotlin数据类

camsedfj  于 2022-11-06  发布在  Kotlin
关注(0)|答案(1)|浏览(201)

我必须在我的应用程序中使用一个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显示在一个recyclingview中。
你知道如何正确提取并在回收站使用它吗?
谢谢

mqkwyuun

mqkwyuun1#

就我个人而言,我会使用MoshiKotlinX Serialization将数据解析为对象
莫希添加了一些额外的依赖项来支持Kotlin的使用,KotlinX Serialization是由kotlin团队在100%的kotlin中完成的,如果你感兴趣的话,它还支持kotlin多平台。
不过这两个都不会出错

相关问题