iOS

2015-04-14, ios swift

SwiftでJSONを読む

以下のような形式のJSONにhttpでアクセスできると想定しています。

[{"foo":1,"bar":10},{"foo":2,"bar":20}]

Swiftのオプショナル型の扱いが今ひとつ理解しきれておらず、ここまで書くのにえらい手間取ってしまいました。

let URL = "http://example.net/foo.json"
let url: NSURL? = NSURL(string: URL)
let request: NSURLRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler: {
    (resp:NSURLResponse?, data:NSData?, e1:NSError?) -> Void in
    var e2: NSError?
    if let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: &e2) as? NSArray {
      for d in son {
          if let v = d["foo"] as? String {
              println(v)
          }
      }
    }
});

正しく書けたとしても、どうも今ひとつ使い易さに欠けるような気がします。Objective-CのAPIをそのまま引き継いだせいでしょう。色々とライブラリが考案されているみたいですね。

参考URL

この記事は役に立ちましたか?