swift 3中从数组到字典的JSON解析问题

Posted

技术标签:

【中文标题】swift 3中从数组到字典的JSON解析问题【英文标题】:JSON Parsing issue in swift 3 from Array to dictionary 【发布时间】:2016-06-03 07:40:12 【问题描述】:

我有一个 JSON 格式:


  "jsonData": 
    "userDetails": [
      
        "user_id": "a",
        "first_name": "First1",
        "last_name": "Last1",
        "donation_amount": 841,
        "donation_time": 1452678347523
      ,
      
        "user_id": "b",
        "first_name": "First2",
        "last_name": "Last2",
        "donation_amount": 841,
        "donation_time": 1452678347523
      ,
      
        "user_id": "c",
        "first_name": "First3",
        "last_name": "Last3",
        "donation_amount": 841,
        "donation_time": 1452678347523
      
    ]
  ,
  "total_count": 3

我正在使用 swiftlyJSON 快速解析:我的代码如下

    private func processProjectDonorsResponse(response: JSON) 
     //add  to  dictionary
        let jsonObject = response.dictionaryObject!["jsonData"]! as AnyObject
        let details = jsonObject["userDetails"] as! [AnyObject]
        var tempModel = [UserModel]()
        for detail in details 
          let user = UserModel(response: detail as! [String: AnyObject])
          tempModel.append(user)
        

它在 swift 2 中运行良好,但现在我已经升级到 swift 3 我在//let details = jsonObject["userDetails"] as! [AnyObject] 行收到警告 如:从字符串转换?!到不相关的类型“[AnyObject]”总是失败,并崩溃。 如何解决这个问题?

【问题讨论】:

【参考方案1】:

您的代码中的问题在于以下行:

let jsonObject = response.dictionaryObject!["jsonData"]! as AnyObject

只需使用以下代码更改此代码:

let jsonObject = response.dictionaryObject!["jsonData"]! as! [String: AnyObject]

希望,这对你有用。

【讨论】:

以上是关于swift 3中从数组到字典的JSON解析问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中从 JSON 对象解析多个数组

在 Swift 3 和 Xcode 8 中从嵌套字典中获取值的问题

如何使用新的 Swift 3 和 Alamofire 解析 JSON(字典和数组)

如何在swift 3中从字典中获取数组

用于解析 JSON 并返回字典数组的 Swift 函数

swift 3 将 json 数组解析为键值