api json

时间:2017-03-13 12:46:34

标签: json swift uitableview swift3 rkobjectmapping

在我从api进行http调用后,我得到了json文件,然后我遍历它以获取特定的值:

   if let value: AnyObject = response.result.value as AnyObject? {
        let json = JSON(value)    
       for (key, subJson) in json {   
           let drivers = subJson["driver"]
           for (key, subJson) in drivers {

              let status = subJson["status"].stringValue
              let date = subJson["created_at"].stringValue
              let name = subJson["name"].stringValue    
              let pivot = subJson["pivot"]
               for (key, subJson) in subJson["pivot"] {
                    let type = pivot["type"].stringValue


                             let data = Driverj(name: name, status: status, created_at: date)


                            self.data.append(data)

                        }


                        DispatchQueue.main.async {
                            self.tableview.reloadData()
                        }
                       }
                     }
            }

在一个单独的文件中,我将值与对象连接起来:

class DriverC: UITableViewCell  {

@IBOutlet weak var status : UILabel!
@IBOutlet weak var date : UILabel!
@IBOutlet weak var job : UILabel!
@IBOutlet weak var update : UILabel!
  }

在另一个文件中,我保存了数据:

 import Foundation
 import ObjectMapper

  class Driverj : Mappable {


var status : String?
var name : String?
var created_at : String?

required init?(map: Map) {
}
required init(name: String , status : String , created_at : String )  {
    self.status = status
    self.name = name
    self.created_at = created_at



}
func mapping(map: Map) {

    status      <- map["status"]
    name             <- map["name"]
    created_at            <- map["created_at"]
}

}

最后这是它的显示方式

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "DriverCell", for: indexPath) as! DriverC

    let entry = data[indexPath.row]


    cell.date.text = entry.date
    cell.job.text = entry.job
    cell.status.text = entry.status
    cell.update.text = entry.name
    return cell


}

我的问题是当我运行我的项目时,我得到三个重复相同数据的单元格。为什么?

json文件:

  [
{
"id": 4,
"name": null,
"email": "5@5.com",
"status": 0,
"confirmed": false,
"street": "street ",
"niehgborhood": "North",
"city": "Sf",
"national_id": "1009090",
"phone": "9000",
"size_of_house": null,
"created_at": "2016-12-04 13:55:52",
"updated_at": "2017-03-08 14:03:44",
"deleted_at": null,
"driver": [
  {
    "name": "unknown",
    "age": "25",
    "Smoker": "No",
    "language": "English",
    "religion": "Muslim",
    "created_at": null,
    "updated_at": "2017-03-08 13:48:55",
    "status": "تم",
    "pic": "http://localhost:8000/images/1488714520.jpg",
    "id": 1,
    "pivot": {
      "user_id": 4,
      "driver_id": 1,
      "type": "driver"
    }
  },
  {
    "name": "Jae",
    "age": "30",
    "Smoker": "No",
    "language": "English",
    "religion": "Muslim ",
    "created_at": "2017-02-28 09:36:15",
    "updated_at": "2017-03-08 08:46:06",
    "status": "ok",
    "pic": "http://localhost:8000/images/1488714520.jpg",
    "id": 2,
    "pivot": {
      "user_id": 4,
      "driver_id": 2,
      "type": "driver"

0 个答案:

没有答案