No se pudo convertir el valor del tipo '__NSArrayI' (0x10df73c08) en 'NSDictionary' (0x10df74108)

let url = "http://xyz/index_main.php?c=webservices&a=get&e=007" Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default) .responseJSON { response in print(response) //to get status code if let status = response.response?.statusCode { switch(status){ case 201: print("example success") default: print("error with response status: \(status)") } } //to get JSON return value if let result = response.result.value { let JSON = result as! NSDictionary print(JSON) } 

Resultado:

  { "create_by" = 007; "create_date" = "2016/06/20"; "due_date" = "2016/06/22"; "estimate_time" = ""; fixer = 007; priority = High; "project_code" = testing; status = "Re-Open"; "task_id" = 228; "task_title" = test; tester = 007; }, { "create_by" = 006; "create_date" = "2016/06/23"; "due_date" = "2016/06/24"; "estimate_time" = ""; fixer = 007; priority = Critical; "project_code" = "tanteida.c"; status = "In Progress"; "task_id" = 234; "task_title" = testing; tester = 006; } 

Quiero convertir a NSDictionary y get una matriz diferente como task_id (array) pero obtengo este error:

"No se pudo convertir el valor del tipo '__NSArrayI' en NSDictionary"

Por favor, ayúdame

Gracias de antemano

Tu respuesta es de Array of Dictionary not Dictionary , así que si quieres todo el dictionary puedes acceder a él usando loop.

 if let array = response.result.value as? [[String: Any]] { //If you want array of task id you can try like let taskArray = array.flatMap { $0["task_id"] as? String } print(taskArray) } 

Esto se debe a que el service devuelve los resultados en forma de una matriz. Lo que debe hacer es arrojar el resultado a NSArray. Luego puede acceder a resultados separados por índice:

 let JSON = result as! NSArray let firstResult = results[0]