Swift AlamofireでJSON取得
SwiftでHTTP通信
iOSではATS(App Transport Security)でhttp通信を許可していません。
もしhttp通信でJSON取得するのであれば、以下の設定が必要ですがこちらもAppleは制限するというアナウンスをしているので、いつかは使えなくなるでしょう。解決策はサーバをhttps通信にすることです。
Infoタグの「Custom iOS Target Properties」で
App Transport Security Settings
を追加して、配下のディレクトリ(?)を追加して
Allow Arbitrary Loads
を追加。Valueを「YES」にします。
これでhttp通信ができるようになります。
ライブラリの追加
Alamofire
SwiftyJSON
のライブラリを追加します。
追加方法はhttp://sugita.hateblo.jp/entry/2017/12/09/225950:ここここに記載しています。
swiftコードにてJSON取得
起動時にjsonを取得してコンソールに出力するようにしました。
override func viewDidLoad() { super.viewDidLoad() // JSONの取得先URLを設定する。 let urlString: String = "http://test.com/test.json” //alamofireのリクエスト。 Alamofire.request(urlString, method: .get).responseJSON{(response) in //ただしこちらはresponseの中のresultのvalueの中に必要な情報が入ってくる // guard はスコープ外でもobjectが使えるようになります guard let object = response.result.value else {return} //dataを扱いやすいようにJSON化します let json = JSON(object) //コンソールに出力 print(json) } }