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

 VI_宁小豆2502874431 发布于 2022-10-28 10:44
   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)")
                }

1 个回答
  • jsonArray[0]["msg_content"]["nick_name"].string!

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

    另外,head_img 貌似数据错了

    2022-10-29 16:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有