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)
}
Result :
{
"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;
}
I want to convert to NSDictionary and get different Array like task_id(array) but I get this error:
"Could not cast value of type '__NSArrayI' to NSDictionary"
Please Help me
Thank you in advance
Your response is of Array of Dictionary not Dictionary, so if you want all the dictionary you can access it using 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)
}
That's because you service returns results in form of an array. What you need to do is to cast result to NSArray. Then you can access separate results by index:
let JSON = result as! NSArray
let firstResult = results[0]
Swift 4.1 +
if let resultArray = jsonResponse.result.value as? [[String: Any]] {
let taskArray = resultArray.compactMap { $0["task_id"] as? String }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With