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