【问题标题】:Cannot subscript a value of type 'JSON' with an index of type 'STRING'无法使用“STRING”类型的索引为“JSON”类型的值下标
【发布时间】:2017-03-19 22:33:14
【问题描述】:

这在 Swift2 中有效,但现在在 Swift3 中(自动转换后)出现错误:

if self.entry["scheduler"] || self.entry["owner"]

Cannot subscript a value of type 'JSON' with an index of type 'STRING'

self.entry["scheduler"] 等的值是布尔值,但我认为问题出在索引“scheduler”和“owner”

当然,我以完全相同的方式引用self.entry 的其他索引,并且在构建时不会出错。

xcode 自动更新,我生活在噩梦中。

【问题讨论】:

    标签: swift3 swifty-json


    【解决方案1】:

    将前两行中的 .string 替换为您期望的任何类型

    let scheduler = self.entry["scheduler"].string
    let owner = self.entry["owner"].string
    
    if(scheduler != nil || owner != nil)
    {
        // Take care here - scheduler and owner are both optionals
    }
    

    【讨论】:

    • 此外,您可以使用 SwiftyJSON 之类的库以更通用的方式解决此问题。它还为您提供了将数据转换为 int、bool 和其他数据类型的便利。 responseBody["driver_profile"]["name"].stringValue , responseBody["driver"]["age"].intValue 更多细节,github.com/SwiftyJSON/SwiftyJSON 此外,这些方法取决于您的 Swift 和 Package 版本。
    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多