2017-05-11 42 views
-4
func parseResponseData(response: AnyObject) { 
    if let feedData = response["feed"] as? [String: Any]{ 
     let entryArray = feedData["entry"] as Any 
     if let entry = entryArray as? [Any]{ 
      for object in entry{ 
       print(object) 
       let appName = object["category"] as [String: Any] // Error: Type "Any" has no subscript members. 
      } 
     } 
    } 
} 

由於此錯誤,我無法解析響應,任何線索如何解決此問題。類型「任何」在解析JSON時沒有下標成員

JSON response

+0

儘量鑄造'object'到'[字符串:任何]的[斯威夫特卡倫特3正確地分析JSON]' – JuicyFruit

+0

可能的複製(HTTP:/ /stackoverflow.com/questions/39423367/correctly-parsing-json-in-swift-3) – Larme

回答

0

試試這個,entryArrayString : Any

func parseResponseData(response: AnyObject) { 
    if let feedData = response["feed"] as? [String: Any]{ 
     let entryArray = feedData["entry"] as Any 
     if let entry = entryArray as? [[String: Any]] { 
      for object in entry { 
       print(object) 
       let appName = object["category"] as? [String: Any] 
      } 
     } 
    } 
} 
+0

它工作!感謝@JuicyFruit的類型鑄造。這真的很有幫助。 –

+0

感謝@vadian輸入的文字 –

0

數組你必須告訴編譯器的實際類型的所有下標的集合類型,Any是不夠的。

這是有幫助的使用類型別名JSON字典

typealias JSONDictionary = [String:Any] 

func parseResponseData(response: Any) { 
    if let feedData = response["feed"] as? JSONDictionary, 
    let entryArray = feedData["entry"] as? [JSONDictionary] { 
     for object in entryArray { 
      print(object) 
      if let category = object["category"] as? JSONDictionary { 
       print(category) 
      } 
     } 
    } 
} 
相關問題