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.结果

swift2.0解析json swift读取json_swift2.0解析json

 

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