[Swift3]APIを叩いてSwiftyJSONで解析する

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
ライブラリを表す画像

ライブラリのラの字も知らなかったほどのiPhoneアプリ開発初心者が、頑張ってライブラリを使ってみようというシリーズ。

今回はJSON形式のデータを簡単に扱うことができる「SwiftyJSON」を使って、APIの実行→データの解析までの一連の流れを行なってみた。

導入方法(CocoaPods)

Podfileに以下の行を追加し、ターミナルでpod install。対応OSはiOS8.0以降。

※CocoaPodsの導入方法はこちら、CocoaPodsの使用方法はこちらの記事を参照。

実装する

日本円(固定値)を基準に、米ドル・ユーロ・フリヴニャ(ウクライナの通貨)に換算した金額を表示するアプリを作る。
使用するAPIは「クジラ 外国為替 確認 API (為替 RSS)」。

HTTP通信を許可する

今回はhttp通信を実行するため、Info.plistを以下のように編集。詳細な編集方法はこちらの記事で。

Info.plistを編集する画像

UI部品を配置する

日本円、米ドル、ユーロ、フリヴニャの金額を表示するラベルを計4つ配置する。

UI部品を配置する画像

配置した4つのラベルはOutlet接続する。

APIを叩く

今回実行するAPIのURLは以下の通り。

http://api.aoikujira.com/kawase/json/jpy

実行すると、日本円のレートを1とした場合の各通貨のレートがJSON形式で返ってくる。URLの「jpy」の部分を他の通貨コードにすれば、基準となる通貨を変更することもできる。

まずはAPIを実行するところまで、以下のように実装。JSONデータは「let task〜」内の「data」に格納される。

APIの実行結果(JSON形式のデータ)を解析する

ここからSwiftyJSONの出番。

まずはSwiftyJSONをインポートする。

使い方はいたって簡単。APIを実行して返ってきたデータをJSON型のインスタンスに食わせる。

あとは配列を扱うような感じでデータを取得するだけ。返ってくるデータの方に応じて「.string」の部分は変える。
該当するデータが存在しない場合は値がnilとなるため、普段オプショナル型を扱うのと同じ要領で使用することができる。

階層構造になっている場合はjson[“hoge”][“fuga”][0]のように指定すればOKだ。

変換結果をラベルに表示する(全ソース)

取得したレートから外貨に変換して表示する処理をまとめて実装。エラー時処理はかなり大雑把です。

実行する

実行した結果がこちら。レートが変わると表示される金額も変わる。

実行した時の画面

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。