ios - 无法使用类型为 '[[String : Any]]' 的索引下标类型为 'String' 的值

标签 ios arrays json swift google-places-api

我正在尝试从 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  

             }       
        } 

我知道如果我将类型转换为 [String : Any] 而不是 [[String:Any]] 它会起作用,但在这种情况下我有将其转换为数组数组,否则它不会读取 json,那么我该如何解决这个问题?

最佳答案

[[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
        }
    }
}

关于ios - 无法使用类型为 '[[String : Any]]' 的索引下标类型为 'String' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48868193/

相关文章:

ios - 从 SKScene 到 UIViewController 的 Segue 不起作用

ios - 当 Storyboard 中存在冲突时 Xcode 崩溃

java - 具有静态方法的数组

javascript - VSCode扩展webview加载json文件问题

android - 在移动设备上的 Unity 中显示 Google map

ios - POST 的 AFNetworking 2.0 自定义 header

java - 从java中的未排序数组中获取未使用数字的列表

arrays - Swift 尝试用字符串数组交叉检查 SKActions 数组

php - 使用 cURL 检索 JSON 数据以与 jQuery 一起使用

json - 不同类型反射的 Golang JSON 数组 : float64 vs int64