无法用索引类型“ String”下标“ [[[String:Any]]””的值

Use*_*672 0 arrays json ios google-places-api swift

我正在尝试从json数组中提取信息,但出现此错误

“无法用索引类型为'String'的类型为[[[String:Any]]'的值下标”

这里

     if let rev = place.details?["reviews"] as? [[String:Any]] {
   if let ver = rev["author_name"] as? String {    // <- IN THIS LINE I GET THE ERROR  

             }       
        } 
Run Code Online (Sandbox Code Playgroud)

我知道,如果我将类型强制转换为[String : Any]替代类型,[[String:Any]]则可以,但是在这种情况下,我必须将其强制转换为数组数组,否则它将无法读取json,那么我该如何解决问题呢?

vad*_*ian 5

[[String:Any]]是一个数组。只能按Int索引下标。

您必须遍历数组,例如:

if let reviews = place.details?["reviews"] as? [[String:Any]] {
    for review in reviews {
        if let authorName = review["author_name"] as? String {
           // do something with authorName
        }
    }
}
Run Code Online (Sandbox Code Playgroud)