国产探花免费观看_亚洲丰满少妇自慰呻吟_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) {   } } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴国县| 海丰县| 嘉鱼县| 综艺| 张掖市| 湖北省| 安岳县| 江安县| 枣阳市| 临泽县| 海宁市| 包头市| 酉阳| 临汾市| 洱源县| 万载县| 临洮县| 武安市| 新余市| 齐河县| 广元市| 盐池县| 昌平区| 新绛县| 东港市| 新竹县| 榆中县| 大理市| 黄山市| 通州市| 磐石市| 紫云| 新干县| 东兴市| 泰州市| 梅州市| 淮阳县| 长白| 洪雅县| 新绛县| 万年县|