if statusCode == 200 {
let json = response.result.value as? NSDictionary
print("JSON FILE")
//print(json)
let companies = json?["companies"] as? [AnyObject]
print(companies)
for value in companies! {
let address = value["address"] as? String
print(address)
let schedule = companies?["schedule"] as? [AnyObject]// as? NSDictionary
print(schedule)
for sch in schedule! {
}
}
}这里的json文件
{
"code": "200",
"message": "OK",
"companies": [
{
"id": "1",
"img": "doxsun.jpg",
"schedule": [
{
"id": "1",
"company_id": "1",
"day": "0",
"time_from": "06:00:00",
"time_to": "23:00:00"
}
]
},
{
"id": "2",
"img": "zalypa.jpg",
"schedule": []
}
]
}对于json文件解析,我有一个问题--如何正确地解析它?我不能解析日程安排。如何转换所有这些类型?通过文字传递质量。通过文字传递质量。
发布于 2016-12-13 06:47:41
使用as运算符正确类型存在一些转换问题。我相信下面的代码应该允许您迭代每一家公司的时间表:
if let JSON = response.result.value as? [String: AnyObject] {
if let companies = JSON["companies"] as? [[String: AnyObject]] {
for company in companies {
if let schedules = company["schedule"] as? [[String: AnyObject]] {
for schedule in schedules {
// do something with the schedule
}
}
}
}
}发布于 2019-08-02 11:05:41
扩展ViewController : UITableViewDelegate,UITableViewDataSource { func tableView(_ tableView: UITableView,numberOfRowsInSection节: Int) -> Int {//返回2 //datamodel.count返回newarr.count }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: tblCell.identifier, for: indexPath) as! tblCell
self.json = newarr.object(at: indexPath.row) as! NSDictionary
cell.lblName.text = json.value(forKey: "artistName") as? String
return cell
}}
扩展ViewController { func swiftyJson(){
let url = URL(string: "https://itunes.apple.com/search?term=jack+johnson")
//let url = URL(string: "http://makani.bitstaging.in/api/business/businesses_list")
Alamofire.request(url!, method: .get, parameters: nil).responseJSON { response in
switch(response.result) {
case .success(_):
let data = response.result.value as! NSDictionary
self.newarr = data.value(forKey: "results")as! NSArray
print(self.newarr)
self.tblView.reloadData()
break
case .failure(_):
print(response.result.error as Any)
break
}
}
}}
发布于 2020-03-18 04:43:33
让url =url(字符串:"https://api.androidhive.info/contacts") Alamofire.request(url!,方法:.get,参数: nil).responseJSON { response in
switch(response.result) {
case .success(_):
if let dicData = response.result.value as? [String : Any]{
if let arrOfCartDetails = Mapper<BaseDataModel>().map(JSON: dicData) {
self.arrData.append(arrOfCartDetails)
print(self.arrData)
if self.arrData.count > 0{
self.arrContect = self.arrData[0].contacts!
print(self.arrContect[0].phone?.home)
}
if self.arrContect.count > 0{
self.tblDemo.reloadData()
}
}
break
case .failure(_):
print(response.result.error as Any)
break
}
}https://stackoverflow.com/questions/41114980
复制相似问题