先將url透過NSURL建構子建立該常數,再將NSURL給予NSData建構子,回傳資料為NSData
let data = getDataFromUrl(url)!
func getDataFromUrl(url:String) -> NSData? {
let url = NSURL(string: url)
if(url == ""){
return nil
}
return NSData(contentsOfURL: url!)
}
再透過NSJSONSerialization.JSONObjectWithData方法將Data轉成AnyObject
並將其JSON依照高雄市公車路線資料的格式輸出
func printJson(object:AnyObject){
if let array = object as? NSArray{
for temp in array{
var id:AnyObject! = temp["ID"]
var departure:AnyObject! = temp["departureZh"]
var destination:AnyObject! = temp["destinationZh"]
println("車牌號碼\(id) 起點\(departure) 目的\(destination)")
}
}
}
Code:
//
// ViewController.swift
// ReadJSON
//
// Created by C.Y.Fang on 2/12/15.
// Copyright (c) 2015 C.Y.Fang. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
let url = "http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AP&CaseNo2=9&FileType=1&Lang=C&FolderType="
override func viewDidLoad() {
super.viewDidLoad()
let data = getDataFromUrl(url)!
let json:AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
options: NSJSONReadingOptions.AllowFragments, error: nil)
printJson(json!)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func getDataFromUrl(url:String) -> NSData? {
let url = NSURL(string: url)
if(url == ""){
return nil
}
return NSData(contentsOfURL: url!)
}
func printJson(object:AnyObject){
if let array = object as? NSArray{
for temp in array{
var id:AnyObject! = temp["ID"]
var departure:AnyObject! = temp["departureZh"]
var destination:AnyObject! = temp["destinationZh"]
println("車牌號碼\(id) 起點\(departure) 目的\(destination)")
}
}
}
}
執行結果:

