Apple / Mac
2017/6/27
swift4.0で追加されるCodableが嬉しい
Shoma Saito
Eyes, JAPANでは試験的にServer Side Swiftを使い、JIRAというサービスの可視化をしています。
そこでAPI叩いて整形し出力するのですが、SwiftでのJSONのコンバートは結構面倒くさかったんですよね
今まで
どんな感じで書いていたかというと、
let str = UTF8Encoding.encode(bytes: body)
if let decoded = try str.jsonDecode() as? [String: Any] { ... }
こんな感じで書いてました(HTTP GETしてきてbodyをjsonDecodeしてるだけ)
これから
struct JIRAIssue: Codable { ... }
こんな感じで構造体を用意して、
let jsonDecoder = JSONDecoder()
let jiraIssue = try jsonDecoder.decode(JIRAIssue.self, from: body)
こんな感じになる
WWDC2017で
このCodableとかXcode9とか色々発表されたので今自分のメインのマシンにbeta版を入れているので使ってみたけど、CodableはピュアなServer Side Swiftとめちゃくちゃ相性が良いと思う。
Realm MeetupとかWWDC恵比寿とかでもCodableの話出てきてるので、みなさんも調べてみてはいかがでしょう?