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