Search This Blog

Chủ Nhật, 24 tháng 12, 2017

Lấy Json từ api in IOS

APIManager.sharedInstance.getApiVedette { (arrCate, error , data) in
                
                
                if error == "" {
                    
                    self.arrCateGet.addObjects(from: arrCate as! [Any])
                    
                }
                else {
                     AlertBar.show(.error, message: Configs.String_GetApiError, duration: 3)

                }


Class APIManager : 


static let sharedInstance = APIManager()
    
    public func getApiVedette(completion: @escaping(NSArray,String,Data) -> Void){
        
        let url = "https://api.minhnhut027.home"
        
       
        Alamofire.request(url).responseJSON { respone  in
            
            if let data = respone.data {
                let (arrGet,error) = ModelNews().parseVedetteWithData(data: data as NSData)
                completion(arrGet,error as String,data)
            }
            else {
                
                completion(NSArray(),"error",Data())
            }
        }
        
    }

// ham parse json 

 func parseVedetteWithData(data:NSData)->(NSArray,NSString){
        
        do {
            
            let parseJSON = try JSONSerialization.jsonObject(with: data as Data, options: .allowFragments)
            let arr_cate_get = NSMutableArray()
                
            if  let itemRelatedDir = parseJSON as? [String: Any] {
                        
                        let cateGet = ModelCate()
                
                        cateGet.m_isHome = true
                        cateGet.m_cate_name = "vedette"
                
                        let arrRelated = NSMutableArray()
                
                        let (model,_) = parseWithDic(dictionary: itemRelatedDir)
                        arrRelated.add(model)
                        cateGet.m_childs = arrRelated
                        
                        arr_cate_get.add(cateGet)
             }
                
             return (arr_cate_get,"")
         
            
        } catch let error as NSError {
            print("Failed to load: \(error.localizedDescription)")
            return (NSArray(),"\(error.localizedDescription)" as NSString)
        }
        
        return (NSArray(),"error")
    }


// ham parse

func parseWithDic (dictionary: [String: Any])->(ModelNews,NSString){
        
        let modelNewsGet = ModelNews()
        //if let dictionary = parseJSON as? [String: Any] {
        
            if let object_id = dictionary["object_id"] as? String {
                modelNewsGet.m_object_id = object_id
            }
            if let title = dictionary["title"] as? String {
                modelNewsGet.m_title = editTitle(title: title)
            }
            if let description = dictionary["description"] as? String {
                modelNewsGet.m_description = description
            }
            if let object_url = dictionary["object_url"] as? String {
                modelNewsGet.m_object_url = object_url
            }
            if let layout = dictionary["layout"] as? String {
                modelNewsGet.m_layout = layout
            }
            if let sport = dictionary["sport"] as? Int {
                modelNewsGet.m_sport = sport
            }
            if let object_content = dictionary["object_content"] as? String {
                modelNewsGet.m_object_content = object_content
            }
            if let thumb_link = dictionary["thumb_link"] as? String {
                modelNewsGet.m_thumb_link = thumb_link
            }
            if let thumb_caption = dictionary["thumb_caption"] as? String {
                modelNewsGet.m_thumb_caption = thumb_caption
            }
            if let time_published = dictionary["time_published"] as? String {
                modelNewsGet.m_time_published = time_published
            }
            if let author = dictionary["author"] as? String {
                modelNewsGet.m_author = author
            }
            if let comment_count = dictionary["comment_count"] as? String {
                modelNewsGet.m_comment_count = comment_count
            }
            if let object_like_number = dictionary["object_like_number"] as? String {
                modelNewsGet.m_object_like_number = object_like_number
            }
            if let video_link = dictionary["video_link"] as? String {
                modelNewsGet.m_video_link = video_link
            }
            if let video_length = dictionary["video_length"] as? String {
                modelNewsGet.m_video_length = video_length
            }
            if let cate_id = dictionary["cate_id"] as? String {
                modelNewsGet.m_cate_id = cate_id
            }
        
    }

Không có nhận xét nào:

Đăng nhận xét