【发布时间】:2017-06-12 21:22:48
【问题描述】:
在迁移到最新版本时,我发现很难在 Swift 3 中使用 Alamofire 4 解析从 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)
}
【问题讨论】:
-
显示你迄今为止尝试过的内容
-
我试过 Alamofire.request(url!, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: headers) .responseJSON{ response in let datamsg = jsonmsg?["SetValues" ] 作为? [String : Any] 让 dataset = datamsg?["data"] as? [String : Any] let setValues = datamsg?["data"] print (setValues[0]["assetDateId"] as Any);
-
把它放在问题中。
-
那么当你运行你的代码时会发生什么?
jsonmsg是什么?它没有在您的代码中定义。 -
dataset是一个数组(字典),而不是字典,所以你不能做as? [String : Any],它至少应该是as? [Any],在你的情况下是as? [[String: Any]]。