如何将嵌入的 json 分配给 Swift 中的变量?

Posted

技术标签:

【中文标题】如何将嵌入的 json 分配给 Swift 中的变量?【英文标题】:how can I assign an embedded json to a variable in 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 ?? [:] 【参考方案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

【讨论】:

以上是关于如何将嵌入的 json 分配给 Swift 中的变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何将图片分配给 UIImageView (Swift 3)

将原语分配给 NSManagedObject 实例(Swift)

如何将过程中的变量值传递给 Apex 中的 Javascript 函数

Swift 为 UITableViewCell 分配两个值

为啥我不能将从 Firestore 获取的值分配给 Swift 中的数组?

错误:无法将“[String]”类型的值分配给 swift 中的“String”类型