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

Ios 正在获取json响应,但无法解析到标签,ios,swift,alamofire,Ios,Swift,Alamofire,我得到了json格式的响应,我在数组中加入了数组,但我无法理解如何在标签上打印我在这里看到的代码 我得到了business\u time数组值的响应,所以任何人都可以帮助我吗 func CallAPI() { let preferences = UserDefaults.standard let uid = "u_id" let acctkn = "acc_tkn" if preferences.object(forK

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

我得到了business\u 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数组的值,但我是swift的新手,所以有人能告诉我如何打印吗

 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()
上面的图案很旧。苹果发布了swift 4中的
JsonEndcoder()
,您应该试试


上面的图案很旧。苹果发布了swift 4中的
JsonEndcoder()
,您应该试试。

正如您所提到的,key
business\u time
的值是一个数组,因此您可以获得多个项目

基本上不要在Swift中使用
NSDictionary
NSArray
,您可以扔掉重要的类型信息,而Swift 3+中的JSON字典总是
[String:Any]
,从不
[String:AnyObject]

//printing response
print(response)
//don't check for `nil`, use optional bindings for all objects
if let result = response.result.value as? [String : Any],
   let userdata = result["data"] as? [String : Any],
   let userTimings = userdata["business_time"] as? [[String : Any]] {
       for timing in userTimings {
           print(timing["start_time"] as! String)
           print(timing["end_time"] as! String)

       }

}
SVProgressHUD.dismiss()

正如您所提到的,key
business\u time
的值是一个数组,因此可以得到多个项目

基本上不要在Swift中使用
NSDictionary
NSArray
,您可以扔掉重要的类型信息,而Swift 3+中的JSON字典总是
[String:Any]
,从不
[String:AnyObject]

//printing response
print(response)
//don't check for `nil`, use optional bindings for all objects
if let result = response.result.value as? [String : Any],
   let userdata = result["data"] as? [String : Any],
   let userTimings = userdata["business_time"] as? [[String : Any]] {
       for timing in userTimings {
           print(timing["start_time"] as! String)
           print(timing["end_time"] as! String)

       }

}
SVProgressHUD.dismiss()

正如您可以在每个JSON中看到的,响应扇区负责服务器状态(200=成功等)。 下一部分是数据。。。因此,基本上,您有几个重要的字典(标题、数据)。要在不使用alamofire的情况下输出数据,请执行以下操作:

给我写回信

func CallAPI()
{
        let url = URL(string: "https:// your_Address")!
        let request = URLRequest(url: url)

        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            if let _ = response, let data = data
            {
                    let result = String(data: data, encoding: .utf8)!
                    print(result as NSString)

            } else {
                print(error as Any)
            }
        }

            task.resume()
    }

正如您可以在每个JSON中看到的,响应扇区负责服务器状态(200=成功等)。 下一部分是数据。。。因此,基本上,您有几个重要的字典(标题、数据)。要在不使用alamofire的情况下输出数据,请执行以下操作:

给我写回信

func CallAPI()
{
        let url = URL(string: "https:// your_Address")!
        let request = URLRequest(url: url)

        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            if let _ = response, let data = data
            {
                    let result = String(data: data, encoding: .utf8)!
                    print(result as NSString)

            } else {
                print(error as Any)
            }
        }

            task.resume()
    }

在business\u time中有这么多的值,您想打印多少值,以何种格式打印,以及它在UI中的外观如何?我想打印开始时间和结束时间business\u time中有这么多值,您想打印多少值,以何种格式打印,以及它在UI中的外观如何?我想打印开始时间和结束时间