ios - swift : 接口返回一个json数据 ,不会解析,求助。

查看:163
本文介绍了ios - swift : 接口返回一个json数据 ,不会解析,求助。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

   func loadVIPData() {
        let uInfo = UserInfo.sharedInstance
        WNet.sharedInstance.getSignInVipList(uInfo.uid!, token: uInfo.token) { (task, rsp) in
            if Int32(rsp["code"]as! Int) == NET_SUCCESS {
                print("请求成功")
                
                let jsonStr = (rsp["msg"])
                print(jsonStr)
                
                let data = jsonStr!!.dataUsingEncoding(NSUTF8StringEncoding)
                let jsonArr = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
                
                print("记录数:\(jsonArr.count)")
                
                for json in jsonArr {
                    print("ID:", json.objectForKey("ID")!, "    Name:", json.objectForKey("Name")!)
                }
            }
            print(rsp)
        }
    }

返回数据 :
请求成功
{

code = 1;
msg =     (
    "{\"u_id\": 198, \"timestamp\": 1467897699.2721512, \"signrecord_id\": 376, \"msg_id\": 667, \"msg_content\": {\"gender\": 1, \"qq_token\": null, \"industry\": \"\\u4e92\\u8054\\u7f51\", \"invite_num\": 0, \"nick_name\": \"\\u8f6f\\u4ef6\\u5f00\\u53d1\", \"member_type\": 0, \"wx_token\": null, \"open_id\": null, \"phone_number\": \"13168761200\", \"u_id\": 149, \"job\": \"iOS\\u5de5\\u7a0b\\u5e08\", \"main_business\": null, \"company\": \"\\u5584\\u4e3a\\u4e92\\u8054\", \"customer_id\": \"n201606200149\", \"region\": \"\\u6df1\\u5733\\u5e02\", \"head_img\": \"http://120.76.156.9:22354//static/upload/head_img/null_TFcLoRf.null\", \"wechat_img_url\": null, \"qq_open_id\": null, \"linked\": true, \"invete_code\": \"n201606200149\", \"realname\": null, \"qq_img_url\": null}, \"type\": \"msg_2\", \"msg_title\": \"\\u6709\\u4eba\\u7b7e\\u5230\\u5566!\"}"
);

}

实在不会解析了,看了教程用,用swiftyJSON ,数组中是有数据的,但是读到就为空

                let json = JSON(rsp)
                let jsonArray = json["msg"].arrayValue
                print(" 数组  \(jsonArray)")
                print(" 数组  \(jsonArray.count)")
                print("---------------------------------")
                if jsonArray.count > 0 {
                    let str = JSON.parse(jsonArray[0]["msg_content"]["nick_name"].string!)
                    
                    print("标题 : \(str)")
                }

这个问题已被关闭,原因:暴露公司ip

解决方案

jsonArray[0]["msg_content"]["nick_name"].string!

本身就是一个字符串,不用再 JSON.parse 了吧

另外,head_img 貌似数据错了

这篇关于ios - swift : 接口返回一个json数据 ,不会解析,求助。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆