【问题标题】:how can I assign an embedded json to a variable in Swift?如何将嵌入的 json 分配给 Swift 中的变量?
【发布时间】:2017-04-25 20:34:31
【问题描述】:

我的后端代码返回以下json

...
 "_id": "some_id",
 "opening_hours": {
    "mon": "9-5",
    "tue": "9-5",
    "wed": "9-5",
    "thu": "9-5",
    "fri": "9-5",
    "sat": "10-3",
    "sun": "closed"
}
...

我想将opening_hours 分配给我的Swift 应用程序中的一个变量,以便我可以轻松地从那里访问不同的日期。我正在使用SwiftyJSON

我尝试使用以下代码:

var openingHours:[String:String] = [:]
    if(json["opening_hours"] != nil){
        openingHours = json["opening_hours"].dictionary
    }

但我有一个错误:

Cannot assign value of type '[String : JSON]?' to type '[String : String]'

那我怎样才能使它易于访问呢?

【问题讨论】:

  • 将 openingHours 声明改为[String : JSON]
  • 试试let openingHours = json["opening_hours"].dictionary ?? [:]

标签: swift swift3 swifty-json


【解决方案1】:

您正在寻找的是 dictionaryObject 属性,它将返回 [String:Any]? 对象,因此将其类型转换为 [String:String] 将适合您。

var openingHours:[String:String] = [:]
if(json["opening_hours"] != nil){
    openingHours = json["opening_hours"].dictionaryObject as? [String:String] ?? [:]
}

【讨论】:

    【解决方案2】:

    来自控制台中显示的错误。我们可以理解这是Dictionary 类型为[String : String] 的问题。

    为了解决问题。尝试创建[String: JSON]?类型的Dictionary

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 2019-08-19
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多