Как справиться с этим json с комнатой - PullRequest
0 голосов
/ 08 марта 2020

Хорошо, так что я немного зациклен на том, как мне следует go об этом, когда дело доходит до использования Room. Я все еще относительно новичок, когда дело доходит до sql, а затем и за номер. У меня есть несколько разных ответов, с которыми мне придется иметь дело, но я не уверен, как их хранить и ссылаться на них. Ниже приведены примеры ответов:

[
  {
    "watchers": 21,
    "movie": {
      "title": "TRON: Legacy",
      "year": 2010,
      "ids": {
        "trakt": 1,
        "slug": "tron-legacy-2010",
        "imdb": "tt1104001",
        "tmdb": 20526
      }
    }
  },
  {
    "watchers": 17,
    "movie": {
      "title": "The Dark Knight",
      "year": 2008,
      "ids": {
        "trakt": 4,
        "slug": "the-dark-knight-2008",
        "imdb": "tt0468569",
        "tmdb": 155
      }
    }
  }
]

И

[
  {
    "collected_at": "2014-09-01T09:10:11.000Z",
    "updated_at": "2014-09-01T09:10:11.000Z",
    "movie": {
      "title": "TRON: Legacy",
      "year": 2010,
      "ids": {
        "trakt": 1,
        "slug": "tron-legacy-2010",
        "imdb": "tt1104001",
        "tmdb": 20526
      }
    },
    "metadata": {
      "media_type": "bluray",
      "resolution": "hd_1080p",
      "hdr": "dolby_vision",
      "audio": "dts",
      "audio_channels": "6.1",
      "3d": false
    }
  },
  {
    "collected_at": "2014-09-01T09:10:11.000Z",
    "updated_at": "2014-09-01T09:10:11.000Z",
    "movie": {
      "title": "The Dark Knight",
      "year": 2008,
      "ids": {
        "trakt": 6,
        "slug": "the-dark-knight-2008",
        "imdb": "tt0468569",
        "tmdb": 155
      }
    },
    "metadata": {
      "media_type": "bluray",
      "resolution": "hd_1080p",
      "hdr": "dolby_vision",
      "audio": "dts",
      "audio_channels": "6.1",
      "3d": false
    }
  }
]

Это всего лишь 2 примера ответов, с которыми я должен справиться. Вот класс данных «Mov ie» и его родительский «Trending»

@JsonClass(generateAdapter = true)
data class Movie(
    @Json(name = "ids")
    val ids: Ids?,
    @Json(name = "ratings")
    val ratings: Ratings?,
    @Json(name = "stats")
    val stats: Stats?,
    @Json(name = "summary")
    val summary: Summary?,
    @Json(name = "title")
    val title: String?,
    @Json(name = "year")
    val year: Int?
)

@JsonClass(generateAdapter = true)
    data class Trending(
        @Json(name = "movie")
        val movie: Movie?,
        @Json(name = "show")
        val show: Show?,
        @Json(name = "watchers")
        val watchers: Int?
    )

Насколько я понимаю, класс данных Trending будет иметь отношение «один ко многим» с фильмами, в зависимости от того, что в списке. Я предполагаю, что мой вопрос вместо того, чтобы использовать MoshiConverterFactory для выполнения всего анализа, я думаю, мне придется вручную обработать ответ.

...