目錄:[Swift]Xcode實際操做html
本文將演示如何解析JSON文檔。json
項目中已添加一份JSON文檔:menu.jsonswift
1 { 2 "menu": 3 { 4 "id": "file", 5 "value": "File", 6 "menuitem": 7 [ 8 { 9 "value": "New", 10 "onclick": "CreateNewDoc()" 11 }, 12 { 13 "value": "Open", 14 "onclick": "OpenDoc()" 15 }, 16 { 17 "value": "Close", 18 "onclick": "CloseDoc()" 19 } 20 ] 21 } 22 }
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】數組
1 import UIKit 2 3 //首先引入文檔的解析代理協議XMLParserDelegate, 4 //主要的解析工做,都是靠代理來實現的。 5 class ViewController: UIViewController, XMLParserDelegate { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //從項目的目錄結構中,讀取須要解析的文檔, 12 let path = Bundle.main.path(forResource: "menu", ofType: "json") 13 //讀取指定位置的文件,並轉換爲二進制數據 14 if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path!)) 15 { 16 //添加一條異常捕捉語句,用於將二進制數據轉換爲字典對象 17 do 18 { 19 //將二進制數據轉換爲字典對象 20 if let jsonObj:NSDictionary = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions()) as? NSDictionary 21 { 22 //根據鍵名,得到字典對象中的鍵值, 23 //並根據鍵值轉換成爲另外一個字典對象 24 if let menuDic:NSDictionary = jsonObj["menu"] as? NSDictionary 25 { 26 //根據鍵名,得到第二個字典對象中的鍵值,並將鍵值轉換成爲一個數組對象 27 if let menuItems:NSArray = menuDic["menuitem"] as? NSArray 28 { 29 //遍歷數組中的元素,並在控制檯打印輸出元素的內容 30 for item in menuItems 31 { 32 print("item: \(item)") 33 } 34 } 35 } 36 } 37 } 38 catch 39 { 40 print("Error.") 41 } 42 } 43 } 44 45 override func didReceiveMemoryWarning() { 46 super.didReceiveMemoryWarning() 47 // Dispose of any resources that can be recreated. 48 } 49 }