获取json响应,但无法解析到标签

时间:2018-07-28 06:01:07

标签: ios swift alamofire

我得到json格式的响应,并且将数组插入数组,但是我无法理解如何在标签上打印,我在这里看到了我的代码

我正在获取bussiness_time数组值的响应,所以任何人都可以帮忙

    func CallAPI(){
        let preferences = UserDefaults.standard

        let uid = "u_id"
        let acctkn = "acc_tkn"


        if preferences.object(forKey: uid) == nil {
            //  Doesn't exist
        } else {
            let u_id = preferences.object(forKey: uid) as! String
            print(u_id)
            let acc_tkn = preferences.object(forKey: acctkn) as! String
            print(acc_tkn)

            let userprofile = ["user_id":u_id,"access_token":acc_tkn]
            SVProgressHUD.show(withStatus: "Loading...")
            Alamofire.request(businessDetailByUserId, method: .post, parameters: userprofile).responseJSON
                {
                    response in
                    //printing response
                    print(response)
                    let result = response.result.value
                    // let obj=result


                    if result != nil{
                        let data = result as! [String : AnyObject]
                        let userdata = data["data"] as! NSDictionary
                        let userTimings = userdata["business_time"]
                        print(userTimings)
                        SVProgressHUD.dismiss()
                    }
        }
    }

}

这是我的回复:

{
    "success": "1",
    "data": {
        "bus_usr_id": "12",
        "fk_user_id": "88",
        "fk_cate_id": "2",
        "bus_name": "AutoMobiles",
        "bus_logo": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/bus_uvbdt1531395509.png",
        "bus_address": "404 Palladium",
        "bus_email": "mihir@hemshub.com",
        "bus_website": "www.hemshub.com",
        "bus_desc": "All types of automobiles spare parts are available.",
        "fav_status": 1,
        "bus_contact_no": "9876543210",
        "bus_status": "1",
        "sub_cate_list": "Spare Parts",
        "category": "Automobiles",
        "business_time": [
            {
                "tbl_bus_time_id": "107",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Monday",
                "start_time": "17:7",
                "end_time": "23:7",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "108",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Tuesday",
                "start_time": "17:7",
                "end_time": "23:7",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "109",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Wednesday",
                "start_time": "17:7",
                "end_time": "23:7",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "110",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Thursday",
                "start_time": "17:7",
                "end_time": "23:7",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "111",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Friday",
                "start_time": "17:7",
                "end_time": "23:8",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "112",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Saturday",
                "start_time": "17:7",
                "end_time": "23:8",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            },
            {
                "tbl_bus_time_id": "113",
                "fk_user_id": "88",
                "fk_bus_id": "12",
                "day": "Sunday",
                "start_time": "17:7",
                "end_time": "23:8",
                "status": "1",
                "created_date": "2018-07-12 11:38:29"
            }
        ]
    },
    "message": ""

我想在标签上打印business_time数组的值,但是我是新手,所以任何人都可以告诉我如何打印

3 个答案:

答案 0 :(得分:1)

 if let jsonData = response.result.value as? [String : Any],
    let userdata = jsonData["data"] as? [String: Any]
    let businessJsonArray = userdata["business_time"] as? [[String: Any]] {

    for businessJson in businessJsonArray {
         let id = businessJson["tbl_bus_time_id"]
    }               
 }
SVProgressHUD.dismiss()

上述模式较旧。 Apple应该迅速尝试发布JsonEndcoder()的版本4。

答案 1 :(得分:1)

正如您提到的,键business_time的值是一个数组,因此您可以获得多个项目。

在Swift中基本上不使用NSDictionaryNSArray,您会丢弃重要的类型信息,并且Swift 3+中的JSON字典始终为[String:Any],而不是{{1} }

[String:AnyObject]

答案 2 :(得分:0)

正如您在每个JSON中看到的那样,响应扇区负责服务器状态(200 =成功等)。 下一部分是数据...因此,基本上,您有几个重要的字典(标头,数据)。要输出数据而不使用alamofire:

给我写回信。

ID <- c(1,1,1,2,2,2,2,3,3)
Value <- c(2,3,5,2,5,8,17,3,5)
group <- data.frame(Subject=ID, pt=Value)