2016-11-04 5 views
0

Nun ist, stelle ich die JSON Antwort auf nil, aber warum ich diesen The data couldn’t be read because it isn’t in the correct format. habe ich den Tableview wie folgt festgelegt:JSON nil Antwort konnten die Daten nicht gelesen werden, weil es nicht im richtigen Format

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if (section==0){ 
     return 1 
    }else{ 
     if(self.listHistory == nil){ 
      return 1 
     }else{ 
      if(self.listHistory.count==0){ 
       return 1 
      }else{ 
       return self.listHistory.count 
      } 
     } 
    } 
} 

und hier ist, wie ich den Antrag stellen:

let apikey = "56c4382d6873f46e7d00000133c2ca8a8220434a4ed619a435f392a8" 
    let request = NSMutableURLRequest(URL: NSURL(string: "https://api.123123.biz/123/NonTransactionManager/TransactionHistory")!) 
    request.setValue(apikey, forHTTPHeaderField: "APIKey") 
    request.HTTPMethod = "POST" 
    ZProgressHUD.show("Please Wait") 

    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response, data, error) in 

     let postString = ("msisdn=\(self.msisdn!)&currentPage=0&pageSize=5&accountID=6&startDate=2016-01-01&endDate=\(tanggal)") 
     request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 
     let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
      guard error == nil && data != nil else { 
       ZProgressHUD.dismiss() 
       print("error=\(error)") 
       return 
      } 
      do { 
       let response = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary 
       dispatch_async(dispatch_get_main_queue(), { 

        ZProgressHUD.dismiss() 
        self.listHistory = response?.objectForKey("accountHistoryDetails") as! NSArray 
        self.tableView.reloadData() 

       }) 

      }catch let error as NSError { 
       print(error.localizedDescription) 
      } 
     } 

     task.resume() 
    } 

können ihr mir sagen, was soll ich diesen Fehler tun, um loszuwerden?

Antwort

0

Versuchen folgende Lösungen:

  1. Sie benötigen Inhaltstyp weitergeben müssen:

    request.addValue ("application/json", forHTTPHeaderField: "Content-Type") request.addValue (“ application/json“, forHTTPHeaderField: "Accept")

  2. let parseJSON = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary

+0

Ihre erste Lösung führt mich zu diesem "fatalen Fehler: unerwartet gefunden Null beim Entpacken eines optionalen Wertes" Fehler auf meiner 'self.listHistory = Antwort? .ObjectForKey (" accountHistoryDetails ") als! NSArray' und dein zweiter Weg funktioniert nicht. jede andere Option, Mann? – Pareho

Verwandte Themen