国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解Swift model 解析的兩種方法

2020-07-26 02:41:30
字體:
來源:轉載
供稿:網友

詳解Swift model 解析的兩種方法

1. 常規解析方法

  //懶加載聲明一個LJNewsModel為數據的數組  lazy var ljArray : [LJNewsModel] = [LJNewsModel]()
//MARK:-- 數據獲取和解析 extension NewsViewController{   func requestNetData(){     /*      打印json數據      */     LJDownLoadNetImage.request("GET", url: "http://c.m.163.com/nc/article/list/T1348647909107/0-20.html") { (data, respond, error) in        方法一:解析數據                let str = String(data:data!, encoding: String.Encoding.utf8)!        print(str)                let ljTempArray : NSArray = self.getDictionaryFromJSONString(jsonString: str).object(forKey: "T1348647909107") as! NSArray                for m in 0 ..< ljTempArray.count        {        let dict:NSDictionary = ljTempArray[m] as! NSDictionary        let model = LJNewsModel()        model.imageUrl = dict.object(forKey: "imgsrc") as! String        model.contentStr = dict.object(forKey: "title") as! String        let count :Int = (dict.object(forKey: "replyCount") != nil) ? dict.object(forKey: "replyCount") as! Int : 0        model.replyCount = "/(count)"        self.ljArray.add(model)        }              self.ljTablewView.reloadData()     }   }      func getDictionaryFromJSONString(jsonString:String) ->NSDictionary{          let jsonData:Data = jsonString.data(using: .utf8)!          let dict = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers)     if dict != nil {       return dict as! NSDictionary     }     return NSDictionary()   } } 

model

import Foundation  class LJNewsModel: NSObject {      //MARK:- 定義屬性   var imgsrc: String = ""  ///< store user's name, optional   var title: String = ""   ///< store user's telephone number   var replyCount: Int = 0      //方法二的model   override init() {     super.init()   }      func setModel(_ imageUrl: String ,_ contentStr: String, _ replyCount:Int) {     self.imageUrl = imageUrl     self.contentStr = contentStr     self.replyCount = replyCount   } } 

2. 利用swift自有的函數進行解析-------推薦

//MARK:-- 數據獲取和解析 extension NewsViewController{   func requestNetData(){     /*      打印json數據      */     LJDownLoadNetImage.request("GET", url: "http://c.m.163.com/nc/article/list/T1348647909107/0-20.html") { (data, respond, error) in              //as? [[String :Any]] 轉化為以字典為元素的數組       //as? [String :Any]  轉化為字典       //1.方法一:解析數據 -- 推薦       let str = String(data:data!, encoding: String.Encoding.utf8)!       guard let allResulrDict = self.getDictionaryFromJSONString(jsonString:str) as? [String : Any] else {return}       guard let dataArray = allResulrDict["T1348647909107"] as? [[String :Any]] else {return}       //print(dataArray)              for dict in dataArray{         self.ljArray.append(LJNewsModel(dict))       }       self.ljTablewView.reloadData()     }   }      func getDictionaryFromJSONString(jsonString:String) ->NSDictionary{          let jsonData:Data = jsonString.data(using: .utf8)!          let dict = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers)     if dict != nil {       return dict as! NSDictionary     }     return NSDictionary()   } } 
import Foundation  class LJNewsModel: NSObject {      //MARK:- 定義屬性   var imgsrc: String = ""  ///< store user's name, optional   var title: String = ""   ///< store user's telephone number   var replyCount: Int = 0       //方法一的model   //MARK:- 自定義構造函數   init(_ dict : [String: Any]){     super.init()     setValuesForKeys(dict)   }    override func setValue(_ value: Any?, forUndefinedKey key: String) {   } } 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 个旧市| 垣曲县| 如皋市| 定安县| 蚌埠市| 彰武县| 江华| 大渡口区| 凉山| 韶关市| 延庆县| 容城县| 木兰县| 太仓市| 临汾市| 台中县| 阿尔山市| 肇东市| 鸡西市| 新乐市| 通江县| 齐齐哈尔市| 招远市| 旅游| 宣武区| 龙口市| 凭祥市| 定结县| 武乡县| 原阳县| 宾川县| 都安| 四子王旗| 辉南县| 宜兴市| 龙岩市| 荣昌县| 家居| 泰安市| 左权县| 响水县|