2017-05-11 43 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) 
      } 
     } 
    } 
} 
相关问题