【问题标题】:Swift3 JSON using AlamofireSwift3 JSON 使用 Alamofire
【发布时间】:2017-04-02 21:10:00
【问题描述】:

我是 Alamofire 和 Swift 的新手。

现在,我正在尝试从 API 转换 JSON,但我不知道如何转换它。

这样的 API:

[
{    
  "myid": "10303210302003",    
  "mySubid": "10303210302003",    
  "area_pkid": "3"    
},

{      
  "myid": "10303210302004",   
  "mySubid": "10303210302004",    
  "area_pkid": "4"    
}, 
....]

我对 "[" 和 "]" 很困惑,我不知道如何转换它并获取 myid。

这是我的代码

    Alamofire.request(MyURL, method: .get).responseJSON { (response) in

       guard let totalJSON = response.result.value as? [String : Any] else { return } // My code is just return !! WHY??

    }

【问题讨论】:

  • 很简单:[] 是数组,{} 是字典。提示:根对象不是字典。
  • @vadian 谢谢!!!!太棒了,我会继续努力的
  • @vadian 谢谢你,我明白了!

标签: json swift3 alamofire


【解决方案1】:

很简单

guard let totalJSON = response.result.value as? [[String : Any]] else { return }
for item in totalJSON {
   print(item["myid"] as? String ?? "n/a")
}

因为封闭对象是一个数组 ([])

如果所有值都是String,您甚至可以将数组转换为[[String:String]]

【讨论】:

  • 再次感谢我的朋友! :)
【解决方案2】:

是的,[] 是一个数组,{} 代表字典。所以要获得myid,只需这样做:

   guard let totalJSON = response.result.value as? [Any] else { return }
   if let i = a["myID"] as? String, let a = totalJSON[0] as? [String: Any] 
   {
      print(i)
   }

【讨论】:

  • 比你!我明白了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 2018-10-14
  • 2017-02-06
  • 2017-03-12
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多