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

首頁 > 系統 > iOS > 正文

詳解Swift model 解析的兩種方法

2020-02-19 15:46:33
字體:
來源:轉載
供稿:網友

我們在開發項目的時候,可能使用的程序都不相同,當然實現的方法也有可能多種多樣,下文是武林技術頻道小編為大家詳解Swift model 解析的兩種方法,一起來學習吧!

詳解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) {   } } 

以上就是武林技術頻道小編為大家介紹的詳解Swift model 解析的兩種方法,其實這兩個方法都是很好的,更多的專業知識盡在武林技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 竹山县| 哈巴河县| 尉氏县| 泰顺县| 吴忠市| 忻州市| 石狮市| 宜宾市| 黄梅县| 育儿| 门源| 平定县| 古蔺县| 晋宁县| 桦南县| 纳雍县| 霍林郭勒市| 武陟县| 井陉县| 无为县| 芒康县| 游戏| 翼城县| 芜湖市| 常德市| 理塘县| 吉首市| 新晃| 唐海县| 屯昌县| 郓城县| 上犹县| 鄂伦春自治旗| 彭州市| 日土县| 肃宁县| 舞阳县| 满洲里市| 郴州市| 仙居县|