利用NSJSONSerialization解析json数组

MrLee 2016-3-15 292 0

Swift开发之Json解析NSJSONSerialization篇

这篇文章介绍了解析json普通数据,像字符串这些。解析数组最后简单的提了下。这里再详细给大家演示下。先看下面这段json数据
{
    "error_code": 0,
    "message_en": "Success",
    "message_cn": "成功",
    "detail": [
        {
            "userid": 12523261,
            "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE4ODcyMjEwODAwIiwicGFzcyI6IjY2NjY2NiIsImFwcGtleSI6InNkNzgzMmVoZHdla3dwOWUiLCJpYXQiOjE0NTgwMjk0NTMsImV4cCI6MTQ1ODYzNDI1M30.YhxcuMwx_L5h_hE0-JR8T0aorHG-8V7mneNLqzDDS_s",
            "active": 0,
            "videoCfg": [
                {
                    "userid": "hello",
                    "mobile": "18888888888"
                }
            ]
        }
    ]
}

我们要解析得到这个token值的话,需要做以下几步,先获取到detail数组,然后下标为0的AnyObject中获取token值。说的可能比较抽象,看代码:
    static func parseResultHead(json:NSData, result:HttpResult){
        let jsonObj:AnyObject? = try?NSJSONSerialization.JSONObjectWithData(json, options: NSJSONReadingOptions.AllowFragments)
        if(!NSJSONSerialization.isValidJSONObject(jsonObj!)){
            print("json format is invalid")
            return
        }
        result.error_code = jsonObj?.objectForKey("error_code") as! Int
        result.message_en = jsonObj?.objectForKey("message_en") as! String
        result.message_cn = jsonObj?.objectForKey("message_cn") as! String
        result.detail = jsonObj?.objectForKey("detail")
    }

以上是解析头的,已经获取到detail的数组。存放是AnyObject类型。现在用detail来解析到token值。
let detail:[AnyObject] = result.detail as! [AnyObject]
if detail.count > 0 {
   let token:String = detail[0].objectForKey("token") as! String
   print(token)
}

通过以上步骤即可获取到token字段的值了。

本文固定链接:http://www.ithtw.com/thread-8276.htm
转载请注明:MrLee 2016-3-15 于 IT十万个为什么 发表
最新回复 (0)
回复
登录发表 or 还没有账号?去注册