斯威夫特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)
}
答
的问题是在这条线
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]。 –
显示你有什么到目前为止已经试过 – shim
我试图 Alamofire.request(网址! 方法:.POST, 参数:零, 编码:JSONEncoding.default, 标题:标题) .responseJSON {在 响应让datamsg = jsonmsg [ “setValues方法”]作为? [字符串:任何] 令数据集= datamsg [ “数据”]作为? ?[字符串:任何] 让setValues方法= datamsg [ “数据”] 打印(setValues方法[0] [ “assetDateId”]作为任何); –
把它放在问题中。 – shim