大佬教程收集整理的这篇文章主要介绍了swift model 解析的两种方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1. 常规解析方法
//@H_197_21@懒加载声明一个LJNewsModel@H_197_21@为数据的数组
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[R_62_11845@] 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() } }
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 } }
//MARK:-- 数据获取和解析 extension NewsViewController{ func requestNetData(){ /* 打印json数据 */ LJDownLoadNetImage.request("GET",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() } }
以上是大佬教程为你收集整理的swift model 解析的两种方法全部内容,希望文章能够帮你解决swift model 解析的两种方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。