Swift Json解析
Swift Json解析
本文问了两种方式解析Json数据:
1.原生方法解析
2.第三方SwiftyJson解析
1.首先定义Json数据
[ { "name":"小炮", "age":"21" }, { "name":"大头", "age":"21" } ]
2.实现
import UIKit import SwiftyJSON class ViewController: UIViewController{ override func viewDidLoad() { //json字符串 let jsonStr = "[{\"name\":\"小炮\",\"age\":21},{\"name\":\"大头\",\"age\":21}]" //转data if let jsonData = jsonStr.data(using: .utf8){ //一:原生解析方法 //获取需要的内容,需要考虑数据是否存在,是否拆包 let dicArr = try! JSONSerialization.jsonObject(with: jsonData, options: .allowFragments) as! [[String:AnyObject]] print("打印所有数据:\(dicArr)") let name = dicArr[0]["name"] as! String print("原生获取name \(name)") //二:第三方SwiftyJSON解析,不许考虑拆包 let json = JSON(jsonData) print("SwiftyJSON打印所有数据:\(json)") if let sName = json[0]["name"].string{ print("SwiftyJSON获取name \(sName)") } } } }
3.结果
4. Model的创建,传入字典
class model :NSObject { var name:String="" var age:Int=0 //自定义构造函数 init(dic:[String:AnyObject]) { super.init() //模型一键赋值这个其实是运用了kvc的原理 self.setValuesForKeys(dic) } //如果字典里面的key在model里没有的话,不用此方法则会报错 override func setValue(_ value: Any?, forUndefinedKey key: String) { } }