如何在Swift中为变量分配嵌入式json?

时间:2017-04-25 20:34:31

标签: swift swift3 swifty-json

我的后端代码返回以下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]'

如何才能轻松访问?

2 个答案:

答案 0 :(得分:1)

您要查找的是dictionaryObject属性,它会返回[String:Any]?对象,因此将其强制转换为[String:String]对您有用。

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

答案 1 :(得分:0)

从控制台中显示的错误。我们可以理解Dictionary类型的[String : String]存在问题。

解决问题。尝试创建Dictionary

类型的[String: JSON]?