ローカルjsonファイルの読み取りと解析

1544 ワード

 if let path = Bundle.main.path(forResource: "columns", ofType: "json") {
            if let jsonString = try? String.init(contentsOfFile: path) {
                if let dataFromString = jsonString.data(using: .utf8, allowLossyConversion: false) {

                    if let data = try? JSONSerialization.jsonObject(with:  dataFromString, options: JSONSerialization.ReadingOptions.allowFragments) {
                        
                        let dict = data as? [String:Any]
                        if let columns = dict?["columns"] as? [[String:Any]] {
                            var index = 0
                            for column in columns {
                                //      
                                let title = column["title"] as? String
                                let groupid = column["groupid"] as? String
                                let type = column["type"] as? String
                                
                                if let itemColumns = column["columns"] as? [[String:Any]] {
                                    for itemColumn in itemColumns {
                                        let itemTitle = itemColumn["title"] as? String
                                        let itemGroupid = itemColumn["groupid"] as? String
                                        let itemType = itemColumn["type"] as? String
                                    }
                                }