2017-03-28 44 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

是啊,那也是真的.. –