開発

【swift】JSONデータからオブジェクトにするのにCodableを使うとかなり便利

こんにちは。iOSをメインに開発しているロッキーカナイです。

Swiftのバージョンが4になってから大分経ちますが、Swift4のFoundationに採用されているCodableプロトコルがかなり便利なのでご紹介します。

これまでは、JSONをパースして、Dictionaryのキーを指定してデータクラスに代入するような流れを実装していたと思うのですが、Codableを使用することで勝手にマッピングしてくれちゃうんです。

Codableを使用しない場合の例

JSON

 

データを入れる構造体

 

JSONデータから構造体へ

 

実際のアプリ開発の現場では、WebAPIを用いてサーバから取得する際に、もっとデータが多くなると思うので、結果的に膨大なコード量となりえます。

 

Codableを使用する

使用例

JSON

 

データを入れる構造体

 

JSONデータから構造体へ

 

はい。これだけです。

かなりすっきりし見やすくなったと思います。

 

例 ネストしているJSONデータ時

JSONデータがネストしている場合はどうなるのでしょうか?

Codableならネストも簡単です。

 

JSON

 

データを入れる構造体

 

JSONデータから構造体へ

 

例 JSONのキーがキャメルケースの場合など、構造体のプロパティ名が異なる場合

ここまでの例でお判りかと思いますが、マッピング時にプロパティ名と一致している必要があります。ですが、JSONのキーってキャメルケースの場合が多いです。

プロパティ名をキャメルケースにするのは気持ち悪いですよね。これもCodableならCodingKeysで対応できます。

JSON

 

データを入れる構造体

 

JSONデータから構造体へ

 

まとめ

いかがでしたでしょうか?

Codableの登場で、かなりコードがすっきりしたのではないでしょうか?

コードが少ないということはバグの発生も少なくなると思うので、いい事ずくめではないのでしょうか?

ではでは〜良いSwiftライフを〜

 

ABOUT ME
ロッキーカナイ
ロッキーカナイ
iOSをメインに、SwiftやObjective-C言語の開発をしてます。趣味は猫と戯れる事、PHPを使ったサイト作成やAndroidの開発もしております。ちなみに名前のロッキーカナイはよく昼飯を食べる所w