Извлечение данных из json в класс данных kotlin

#android #json #kotlin #gson

#Android #json #kotlin #gson

Вопрос:

Я должен использовать файл 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
)
  

и некоторые другие элементы также являются определенным классом, таким как Team or Venue ..

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

Каков наилучший способ перевести этот json с использованием класса данных? в целом, этот json отображается в recyclingview.

Есть идеи, как правильно извлечь его и использовать в recyclerview?

Спасибо

Комментарии:

1. Все, что вы делаете, идеально подходит для меня. Кроме того, место может быть нулевым в случае, если оно делает его обнуляемым

Ответ №1:

Лично я бы использовал сериализацию Moshi или KotlinX для разбора ваших данных на объекты

Moshi добавляет несколько дополнительных зависимостей, необходимых для использования kotlin, а сериализация KotlinX была выполнена командой kotlin на 100%. kotlin plus поддерживает мультиплатформенность kotlin, если это представляет какой-либо интерес. Однако он довольно новый и только что вышел 1.0 несколько недель назад.

не могу ошибиться ни с тем, ни с другим