1. 程式人生 > >OS資料處理及版本特性-json解析

OS資料處理及版本特性-json解析

首先需要一個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.")
            }
        }