OS資料處理及版本特性-json解析
阿新 • • 發佈:2018-11-22
首先需要一個json
{ "menu": { "id":"file", "value":"File", "menuitem": [ { "value":"New", "onclick":"CreateNewDoc()" }, { "value":"Open", "onclick":"OpenDoc()" }, { "value":"Close", "onclick":"CloseDoc()" } ] } }
解析json
//從專案目錄讀取json檔案 let path:String = Bundle.main.path(forResource: "menu", ofType: "json")! // 然後讀取指定位置的檔案 並轉換成二進位制資料 if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path)) { do{ //將二進位制轉為字典物件 if let jsonObj:NSDictionary = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions()) as? NSDictionary { //根據鍵名獲得字典中的鍵值 並將鍵值轉換成另一個字典物件 if let menuDic:NSDictionary = jsonObj["menu"] as? NSDictionary{ //根據鍵名 獲得第二個字典物件中的鍵值 並將鍵值轉換為一個數組物件 if let menuItems:NSArray = menuDic["menuitem"] as? NSArray{ for item in menuItems{ print("itme: \(item)") } } } } }catch{ print("Error.") } }