Я использую xcode 7.2 и быстрый 2.1.1. использование Alamofire для связи с сервером. У меня есть табличное представление, отображающее динамические данные. Данные включают в себя имя пользователя, адрес пользователя, profilePicture и т. д. Я пытался реализовать этот код из stackoverflow. Но я получаю предупреждающее сообщение о том, что Приведение из «JSON» к несвязанному типу «[Словарь]» всегда терпит неудачу Мой ответ json:
{
"JsonRequestBehavior" : 1,
"MaxJsonLength" : null,
"ContentType" : null,
"Data" : {
"_id" : "5658444778a7531f4c79c23d",
"Photo" : "",
"AllowSharing" : "YES",
"MemberCount" : 5,
"Users" : [
{
"_id" : "5658443478a7531f4c79c23c",
"Photo" : "",
"MembershipDate" : "0001-01-01T00:00:00",
"MiddleName" : null,
"FirstName" : "Gohan",
"LastName" : null,
"Email" : "[email protected]"
},
{
"_id" : "566ea5f1dfead62350cf0fad",
"Photo" : "",
"MembershipDate" : "0001-01-01T00:00:00",
"MiddleName" : null,
"FirstName" : null,
"LastName" : null,
"Email" : "[email protected]"
}
],
"MembershipDate" : "2015-12-14T12:03:12.819Z",
"CreatedBy" : "5658443478a7531f4c79c23c"
},
"ContentEncoding" : null,
"RecursionLimit" : null
}
Как я могу перебирать Пользователи в ответе JSON?
EDIT в соответствии с ответом JohnyKutty. Я попробовал тот же код в своем проекте. Код для того же
Alamofire.request(.GET,App.AppHomeURL() + "Load_Group", parameters: ["groupid":"\(groupId)"]).responseJSON
{
response in
print("\(response.data)")
switch response.result
{
case .Success(let _data):
let jsonData = JSON(_data)
print("Admin Response : \(jsonData)")
do
{
let json = try NSJSONSerialization.JSONObjectWithData(_data as! NSData, options: .AllowFragments) as! NSDictionary
if let DataObject = json["Data"] as? NSDictionary
{
if let users = DataObject["Users"] as? [NSDictionary]
{
for user in users
{
print("User id : \(user["_id"])")
}
}
}
}
catch let error as NSError
{
print(error.localizedDescription)
}
в этой строке let json = try NSJSONSerialization.JSONObjectWithData(_data as! NSData, options: .AllowFragments) as! NSDictionary Сначала я использовал «_data», а затем Xcode предложил изменение, и оно изменилось с _data на _data as! НСДата.
Could not cast value of type '__NSCFDictionary' (0x109373ef0) to 'NSData' (0x109372e88).
22.12.2015