2016-08-08 3 views
1

У меня этот вопрос, где я не могу получить доступ значений из ответа JSON,JSon с Swift 2, извлекая данные

ответа на: { «результат»: [истинно]}

и когда JSON получает его с этим кодом

  do{ 

       let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) 


       let result:String = json["result"] 

        print(result) 


      }catch { 
       print("Error with Json: \(error)") 
      } 

я получаю сообщение об ошибке, и когда я сделал отладки, я увидел, что JSON имел следующий

how json is stored

есть в любом случае, чтобы получить доступ к результатам от json? он не работал, рассматривая его как массив или как словарь

любые идеи?

благодаря

ответ

1

result не String, что это Array из Bool (представлен в скобках).

В основном не аннотировать типы, если они не нужны компилятору.

Вставьте JSON в соответствующий тип и используйте родные типы коллекции Swift. Также рекомендуется использовать дополнительные привязки, чтобы избежать непредвиденных сбоев.

do { 
    if let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) as? [String:AnyObject], 
      result = json["result"] as? [Bool] where !result.isEmpty { 
     print(result[0]) 
    } 

} catch { 
    print("Error with Json: \(error)") 
} 
+0

Спасибо, это сработало! –

0

Попробуйте как этот

do{ 

      let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) as! NSDictionary 
      let result = json["result"] as! NSArray 
       print(result) 

      let boole = result[0]; 

     }catch { 
      print("Error with Json: \(error)") 
     } 
Смежные вопросы