SwiftyJSON 範例筆記

2017091721:03


SwiftyJSON
https://github.com/SwiftyJSON/SwiftyJSON


JSON 的測試資料來源:
https://data.gov.tw/dataset/26652

資料內容:
{
"success":true,
"result":{
  "resource_id":"382000000A-000224-002",
  "limit":2000,
  "total":5,
  "fields":[
    { "type":"text","id":"title"},
    { "type":"text","id":"address"},
    { "type":"text","id":"tel"}
  ],
  "records":[
    {"title":"財團法人天主教福利會附設新北市私立約納家園","address":"22243新北市深坑區北深路二段155號","tel":"(02)2662-5184"},
    {"title":"財團法人家扶基金會附設新北市私立大同育幼院","address":"23559新北市中和區圓通路121巷2號","tel":"(02)2247-2455"},{"title":"財團法人基督教芥菜種會附設新北市私立愛心育幼院","address":"24255新北市新莊區中正路382號","tel":"(02)2992-7503"},
    {"title":"財團法人淨化社會文教基金會附設新北市私立普賢慈海家園","address":"23658新北市土城區學府路一段23巷21號","tel":"(02)8261-1331"},
    {"title":"財團法人新北市私立榮光育幼院","address":"23441新北市永和區竹林路75巷11號","tel":"(02)8927-6225"}
  ]
 }
}


 
// 以上先 json資料存為 jsondata.json


//讀取檔案中的 json 資料
let url = Bundle.main.url(forResource: "jsondata", withExtension: "json")
let data = try? Data(contentsOf: url!)

let sjson = JSON(data: data!)

if let ss = sjson["success"].bool {
    print(ss)   // true
}


// .stringValue 取值 叫做 non-optional getter
print(sjson["success"].stringValue)   // true

       
if let results = sjson["result"]["records"].array {
    for data in results {
        print(data["title"])
    }
}
//結果:
財團法人天主教福利會附設新北市私立約納家園
財團法人家扶基金會附設新北市私立大同育幼院
財團法人基督教芥菜種會附設新北市私立愛心育幼院
財團法人淨化社會文教基金會附設新北市私立普賢慈海家園
財團法人新北市私立榮光育幼院


print( sjson["result"]["fields"].rawString()! )
//結果
[
  {
    "type" : "text",
    "id" : "title"
  },
  {
    "type" : "text",
    "id" : "address"
  },
  {
    "type" : "text",
    "id" : "tel"
  }
]