LoginSignup
1
0

More than 3 years have passed since last update.

swiftのREST処理におけるJSON/Equatable/Codableの整理

Posted at

tl;dr

JSONでREST通信する際に使うプロトコル(Equatable/Codable)の整理をする

Equatable

equalsなどの同値比較をする際に、structなどの構造体の中身が同値かどうかを比較できるようにするプロトコル。


struct SomeStruct: Equatable {
    let key1: String
    let key2: String
}

上記のように書くことで、インスタンスの中身の比較ができる。

Codable

JSON→struct間を自動で変換するためのプロトコル。
JSONと同じキー構成のstructにCodableを継承させれば下記のような形で変換できる。


let data = json.data(using: .utf8)

let struct = try? JSONDecoder().decode(SomeStruct.self, from: data)

使い所

JSONでやりとりするREST通信の際には、受け取ったJSONはCodableを使ってstructに変換して利用できる。
テスト観点でも返り値の比較をstruct同士の比較でできるので便利

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0