你的teams是NSArray。
但除此之外就沒有告知其他的事項。
所以NSArray的內容就被視為Any
這種狀況下他根本不知道你Any中還有NSDictionary
你應該要如此宣告:
var teamJSON:[String:Any]!
以及
var teams:[[String:Any]] = teamJSON["teams"]
具體告訴Array是什麼內容。
另外現在大家比較少去宣告NSArray和NSDictionary了。
array的話就是直接用[(型態)]的方式宣告
dictionary就是用[(key型態):(value型態)]的方式宣告。
額外的建議,你可以考慮使用SwiftyJSON這個第三方元件庫。
他很強大的能處理你JSON格式的資料,不需要自己硬幹JSON。
贊同 @Samと可樂快跑 的答案。
錯誤提示:Any 類型 不能使用腳標。
分析下teams[i]["id"],顯然 teams被聲明為NSArray,使用teams[i]不會出現問題,那麽問題就在於取值之後的對象。
解決方法:teams被聲明 [[String:Any]]或者[Array]都是可行的,這樣第一次取值[i]後,編譯器會默認元素類型為數組,再取值["id"]就不會報錯了。