2017-03-28 45 views
-2

我在下面的代码得到这个错误在该行if let arrJson = allContacts["contacts"]型“任何”在没有下迅速成员3

if let arrJson = allContacts["contacts"]  { 
      for index in 0...arrJson.count - 1 
      { 
       let aObject = arrJson[index] as! [String : AnyObject] 

       names.append(aObject["name"] as! String) 
       contacts.append(aObject["email"] as! String) 

       } 
      } 

请帮我该怎么办? 我已经试过这一个,但不解决这个错误Type 'Any' Has no Subscript Members in xcode 8 Swift 3

+1

您还没有申报(如[字符串:任何] allContacts!)的'allContacts',尝试'类型。[ “联系人”]' – Tj3n

+0

我建议使用像SwiftyJSON一些框架解析JSON。使用纯粹的swift这是地狱。 – Makalele

+0

我是swift新手,因此我只是学习如何在swift中解析json数据@Makalele – user7356913

回答

1

试试这个:

let tempDic = allContacts as! Dictionary<String,Any> 
     if let arrJson = tempDic["contacts"]  { 

      let arrJson = arrJson as! Array<Dictionary<String,Any>> 
      for index in 0...(arrJson).count - 1 
      { 
       let aObject = arrJson[index] as [String : AnyObject] 

       names.append(aObject["name"] as! String) 
       contacts.append(aObject["email"] as! String) 

      } 
     } 
1

你得到一个错误b'coz你allContacts没有数组,字典或集合声明(这些集合有标) 。

所以你们都需要做的是把allContacts转换成适当的类型。

例如。

`allContacts as! Dictionary<AnyHashable, Any>` 
`allContacts as! Array<Any>` 
+0

根据定义,JSON字典总是有'String'键。所以它是'字典' – vadian

+0

是啊,那也是真的.. –