2016-12-07 2 views
-3

У меня есть Dictionary, как это, я получаю значение «OutputResult», но, как я получаю значение «company_id», «отдел» и т.д ..как получить значение из словаря swift3

if let convertedJsonIntoDict = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary 


let firstNameValue = convertedJsonIntoDict["OutputResult"] as? String 
       print("OutputResult is :\(firstNameValue!)") 

{ 
OutputResult = true; 
msg =  { 
    "company_id" = 1; 
    "department_id" = 6; 
    email = "[email protected]"; 
    "employee_code" = 014; 
    "employee_id" = 131; 
    "employee_name" = "abc dsc"; 
    "have_power" = 0; 
    ip = ""; 
    "is_deleted" = 0; 
    lastactivity = ""; 
    status = 1; 
}; 
} 

ответ

1

Вы должны использовать Swift родной Dictionary вместо NSDictionary, это даст вам легкий доступ от Dictionary. С вашего ответа это выглядит так: OutputResult содержит Boolean значение, а также ваши company_id и department_id находится в другом словаре msg, поэтому вы можете попробовать что-то вроде ниже.

if let convertedJsonIntoDict = try JSONSerialization.jsonObject(with: data!, options: []) as? [String: Any] { 
    if let msg = convertedJsonIntoDict["msg"] as? [String: Any], let company_id = msg["company_id"] as? Int, 
     let department_id = msg["department_id"] as? Int { 
      //You can same way access other details of employee, email, etc.. 
      print(company_id) 
      print(department_id) 
    } 
} 
+0

Спасибо за rply, но ошибка в этой строке ** если пусть тзд = convertedJsonIntoDict [ "сообщение"], пусть company_id = сообщ [ "company_id"], как? Int, let department_id = msg ["department_id"] as? Int ** его тип шоу «Любой» не имеет ни одного индекса – johnyDiOS

+0

@johny Забыл добавить 'as? [String: Any] 'проверить отредактированный ответ. –

+0

его работа я получил его и благодарю вас за обучение – johnyDiOS

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