SwiftyJSON
https://github.com/lingoer/SwiftyJSON
上記を読んでしまえば一瞬なんですが、一応使い方をこちらにもそのまま書いておきます。
#JSONの取り扱いって面倒ですよね?
[
{
......
"text": "just another test",
......
"user": {
"name": "OAuth Dancer",
"favourites_count": 7,
"entities": {
"url": {
"urls": [
{
"expanded_url": null,
"url": "http://bit.ly/oauth-dancer",
"indices": [
0,
26
],
"display_url": null
}
]
}
......
},
"in_reply_to_screen_name": null,
},
......]
こんなデータがあったとします。
データの取り出しはこんな感じ
let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(dataFromTwitter, options: NSJSONReadingOptions.MutableContainers, error: nil)
if let statusesArray = jsonObject as? NSArray{
if let aStatus = statusesArray[0] as? NSDictionary{
if let user = aStatus["user"] as? NSDictionary{
if let userName = user["name"] as? NSDictionary{
//やっと取り出せました。
}
}
}
}
面倒ですよね。。
下記のような方法でも汚い。
let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(dataFromTwitter, options: NSJSONReadingOptions.MutableContainers, error: nil)
if let userName = (((jsonObject as? NSArray)?[0] as? NSDictionary)?["user"] as? NSDictionary)?["name"]{
//What A disaster above
}
#そこでSwiftyJSONの登場
##セットアップ
https://github.com/lingoer/SwiftyJSON
まだswiftはpodに対応していないらしいので上記からzipをダウンロード&解答してSwiftyJSON.swiftをダウンロードしてプロジェクトに投げ込んで設定完了
この辺から見てください
cocoapodsセットアップからSwiftyJSON動作確認まで
##使い方
var url = "http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&sensor=false"
var reqest = NSURLRequest(URL: NSURL(string: url))
NSURLConnection.sendAsynchronousRequest(reqest,queue: NSOperationQueue.mainQueue(),completionHandler:{
(res: NSURLResponse!, data: NSData!, error: NSError!) in
let json = JSONValue(data)
if let distance = json["routes"][0]["legs"][0]["distance"]["text"].string{
println(distance)
}
})
簡単ですね。