[Swift]CodingKeysの役割

swift

SwiftでAPIを使ったコードを書く時に、APIに基づいてモデルを作成することになる。

色々なサンプルコードを見てると、CodingKeysが記載されたものと、されていないものが出てくる。この違いはなに?という部分の備忘録。

APIをベースにモデルを作成

簡単に以下のようなものを書いてみる。

struct Post: Codable
  id: Int
  title: String
  publishedData: Date

structでAPIで受け取る情報のモデルを作成してやる。ここまでは理解できるのだけど、サンプルコードによっては、続けて以下のようなものがある。

struct Post: Codable
  id: Int
  title: String
  publishedDate: Date

  enum CodingKeys: String, CodingKey {
  case id = "post_id"
  case title
  case publishedDate = "published_date"
}

よくよく調べてみるとCodingKeysはEncodeとDecodeでキー名が違う時に対応させる必要があるので、その時に使うらしい。なるほど。

https://qiita.com/s_emoto/items/deda5abcb0adc2217e86



カテゴリー