2017-01-16 5 views
2

Я не заселить вид таблицы с SwiftyJSON, это не разобрать Alamofire JSON результатаAlamofire JSON результат синтаксического анализа с SwiftyJSON

let getRouteURL = "http://example.com/api/Trafi/GetRoute/" 
    Alamofire.request(getRouteURL, method: HTTPMethod.post, parameters: param, encoding: JSONEncoding.default, headers:nil).responseJSON{ response in 

     if let result = response.result.value { 
      if let JSON = try? JSON(result){ 
       if let RoutesArr = JSON["Routes"].arrayObject{ 
        self.routes = RoutesArr as! [[String : AnyObject]] 
        self.routeTable.reloadData() 
       } 
      } 

     } 

    } 

данные Пример Here

Edit: Этот код работает, но причина ошибки моего веб служебная ошибка. Спасибо за помощь!

+0

Try и задайте тип контента json во время запроса. – Dory

+0

@EricAya Нет, данные только отклика неверны –

+0

Вы правы @Dory –

ответ

0

Набор контента типа заголовков приложения/JSON при запросе запрос JSON, как показано ниже:

let headers = [ 
        "Content-Type" : "application/json; charset=UTF-8" 
       ] 

let getRouteURL = "http://example.com/api/Trafi/GetRoute/" 

Alamofire.request(getRouteURL, 
    method: HTTPMethod.post, 
    parameters: param, 
    encoding: JSONEncoding.default, 
    headers:headers).responseJSON{ response in 

    if let result = response.result.value { 
     if let JSON = try? JSON(result){ 
      if let RoutesArr = JSON["Routes"].arrayObject{ 
       self.routes = RoutesArr as! [[String : AnyObject]] 
       self.routeTable.reloadData() 
      } 
     } 

    } 

} 
0

Я просто сделать это:

let request = Alamofire.request(url, method: method, parameters: params, encoding: URLEncoding.default, headers: httpHeaders).validate() 

request.responseJSON { response in 
     switch response.result { 
     case .success(let json): 
      let jsonObject = JSON(json) 
      //Use jsonObject 
     .... 
     } 
    } 

Если я правильно помню, эта модель пришла из примеров Alamofire GitHub. Я посмотрю, смогу ли найти ссылку Я думаю, что мое использование этого шаблона, вероятно, произошло от this answer.

+0

Я должен использовать Alamofire –

+0

Ах, извините. Это не очевидно, но это так. Я отредактировал –

0

Это, как я обрабатывать JSON с SwiftyJSON на Swift 3

// handle data 
if let value = response.result.value { 
    let json = JSON(value) 

    for(_, location): (String, JSON) in json{ 
     let pendingLocation = PendingLocation(_id: location["_id"].stringValue, userId: location["userID"].stringValue, name: location["name"].stringValue) 
     self.pendingLocations.append(pendingLocation) 
     self.tableView.reloadData() 
    } 
} 
+0

, не работает, просмотрите мои данные json. это [здесь] (http://codebeautify.org/jsonviewer/cb5dda8c) –

+0

Какая ошибка? – Devbot10

+0

Ошибка домена = NSCocoaErrorDomain Code = 3840 «Текст JSON не начинался с массива или объекта и не позволял фрагментам не устанавливать». UserInfo = {NSDebugDescription = текст JSON не начинался с массива или объекта, а опция позволяла не устанавливать фрагменты.} –

 Смежные вопросы

  • Нет связанных вопросов^_^