斯威夫特Alamofire迁移解析JSON

问题描述:

在迁移到最新版本我发现很难获得和使用雨燕4 Alamofire解析来自JSON打印的姓名,年龄,出生日期及的领域3.斯威夫特Alamofire迁移解析JSON

JSON格式

"SetValues": { 
"data": 
[ 
    { 
    "Name": yyyyy , 
    "Age": 13, 
    "DOB": "2017-06-08", 
    } 

    { 
    "Name": xxxx , 
    "Age": 33, 
    "DOB": "2015-06-08", 
    } 
] 
} 

我试图

Alamofire.request(url!, 
         method: .post, 
         parameters: nil, 
         encoding: JSONEncoding.default, 
         headers: headers) 

     .responseJSON{ response in 

        let datamsg = jsonmsg?["SetValues"] as? [String : Any] 

        let dataset = datamsg?["data"] as? [String : Any] 
        let setValues = datamsg?["data"] 
        print (setValues[0]["Name"] as Any) 
       } 
+0

显示你有什么到目前为止已经试过 – shim

+0

我试图 Alamofire.request(网址! 方法:.POST, 参数:零, 编码:JSONEncoding.default, 标题:标题) .responseJSON {在 响应让datamsg = jsonmsg [ “setValues方法”]作为? [字符串:任何] 令数据集= datamsg [ “数据”]作为? ?[字符串:任何] 让setValues方法= datamsg [ “数据”] 打印(setValues方法[0] [ “assetDateId”]作为任何); –

+0

把它放在问题中。 – shim

的问题是在这条线

let dataset = datamsg?["data"] as? [String : Any] 

从JSON响应字符串见过它应该像下面

let dataset = datamsg?["data"] as? [[String : Any]] 

let name = dataset?[0]["Name"] as? String 
+0

谢谢大家的时间和精力的工作,它的解决方案我总算是:该类型的任何成员不能采取标,所以如果我需要索引值通过解析JSON穿越,我必须投最初的JSON响应于字典然后找到数据部分并用作?[String:Any]。 –