Ios 正在获取json响应,但无法解析到标签
我得到了json格式的响应,我在数组中加入了数组,但我无法理解如何在标签上打印我在这里看到的代码 我得到了business\u time数组值的响应,所以任何人都可以帮助我吗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
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()
,您应该试试。正如您所提到的,keybusiness\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中的外观如何?我想打印开始时间和结束时间