Swift3 JSON 使用 Alamofire

Posted

技术标签:

【中文标题】Swift3 JSON 使用 Alamofire【英文标题】:Swift3 JSON using 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 谢谢你,我明白了! 【参考方案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)
   

【讨论】:

比你!我明白了:)

以上是关于Swift3 JSON 使用 Alamofire的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SWIFT3 解析此 JSON [重复]

在 Swift3 中解析 JSON

数据 > JSON - Swift3 - 转换和解析

Swift3 和 JSON

swift3 模型转字典(JSON)

swift3 模型转字典(JSON)