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