SwiftでJsonを簡単に扱えるライブラリ「swift-json」が超便利!
普通にやると面倒くさいSwiftにおけるJsonの扱いが超簡単になるライブラリ「swift-json」の紹介です.
swift-jsonとは?
SwiftにおけるJsonの扱いを簡単にしてくれるライブラリです.
作者のdankogaiさんに感謝です!
セットアップ
https://github.com/dankogai/swift-json/blob/master/json/json.swift
上記のページのjson.swiftを下記画像のように自身のプロジェクトに配置するだけでOK!超簡単!
使い方
とりあえずコードを示してから,詳細を説明します.
以下のコードでは,HeartRails Expressという駅情報を取得できるAPIから新宿駅の情報をJson形式のデータを受け取り,内容を表示します.
// APIからJsonを取得してパース let json = JSON(url:"http://express.heartrails.com/api/json?method=getStations&name=%E6%96%B0%E5%AE%BF") // 特定の要素の取り出し var line = json["response"]["station"][2]["line"] println("stationの3番目の要素のline: \(line)") // 配列要素の取り出し for (i,station) in json["response"]["station"] { println("-----") for (key, value) in station { println("\(key): \(value)") } }
Jsonの取得とパース
// APIからJsonを取得してパース let json = JSON(url:"http://express.heartrails.com/api/json?method=getStations&name=%E6%96%B0%E5%AE%BF")
指定したURLからJson形式のデータを取得します.このサンプルでどのようなデータが取得できるかは実際にURLにアクセスしてみてください.
http://express.heartrails.com/api/json?method=getStations&name=%E6%96%B0%E5%AE%BF
これを,JSON()
という関数でパースします.
特定の要素の取り出し
それではパースした内容を取得してみましょう.
// 特定の要素の取り出し var line = json["response"]["station"][2]["line"] println("stationの3番目の要素のline: \(line)")
これを実行すると下記のように表示されます.
stationの3番目の要素のline: JR山手線
ほぼ見たまんまですが,responseの中のstation配列の3番目の要素のlineを取り出しています.
このようにして,好きな要素を簡単に取得できるのがswift-jsonの素晴らしいところです!
配列要素の取り出し
最後に,配列要素を全て取り出す方法を紹介しておきます.
// 配列要素の取り出し for (i,station) in json["response"]["station"] { println("-----") for (key, value) in station { println("\(key): \(value)") } }
これを実行すると以下のように表示されます.
----- x: 139.700604 postal: 1600022 y: 35.690067 prefecture: 東京都 next: 大久保 line: JR中央線 name: 新宿 prev: 代々木 ----- x: 139.700643 postal: 1600022 y: 35.689873 prefecture: 東京都 next: 池袋 line: JR埼京線 name: 新宿 prev: 渋谷 ----- x: 139.700643 postal: 1600022 y: 35.689873 prefecture: 東京都 next: 新大久保 line: JR山手線 name: 新宿 prev: 代々木 ----- ...(以下略)
このようにfor in
ループで簡単に取り出せます.
ただし,注意してほしいのはタプルを用いて取り出すということです.
上の例では,i
に何番目の要素かが,station
に実際の要素が入っています.
その他の使い方
英語ですが,GitHubに詳しい説明が書かれていますのでそちらをどうぞ!
以上,SwiftでJsonを簡単に扱えるライブラリ「swift-json」の紹介でした.
参考