将alamofire响应解析为JSON返回nil



我正在尝试解析来自alamofire响应的数据。如果我打印所有响应,效果很好,但如果我想打印特定的参数形式JSON,例如";firstName";它正在返回零。

AF.request("http://localhost:5000/api/users").responseJSON(completionHandler: { (res) in

switch res.result {
case let .success(value):
let xjson : JSON = JSON(res.value)
print(xjson["firstName"].string)
case let .failure(error):
print(error)
}
})

控制台中没有错误

下方的代码

AF.request("http://localhost:5000/api/users").responseJSON(completionHandler: { (res) in

switch res.result {
case let .success(value):
let xjson : JSON = JSON(res.value)
print(xjson)
print(xjson["firstName"].string)
case let .failure(error):
print(error)
}

})

返回

[
{
"dateOfBirth" : "1998-11-18T00:00:00.000Z",
"_id" : "5f6a29ed16444afd36e9fe15",
"email" : "sdasd@mail.com",
"__v" : 0,
"firstName" : "adam",
"lastName" : "kowalski",
"accountCreateDate" : "2020-09-22T16:44:29.692Z",
"userPassword" : "12345",
"userLogin" : "loginakowalski"
}
]
nil

xjsonJSON(看起来是User(对象的Array。因此,您需要访问以下数组元素,

let xjson : JSON = JSON(res.value)
if let firstUser = xjson.array?.first {
print(firstUser["firstName"] as? String)
}

您也可以将JSON响应放在这里,并免费获得所需的数据类型和解码代码。

感谢大家的帮助。以下是返回正确值的代码:

AF.request("http://localhost:5000/api/users").responseJSON(completionHandler: { (res) in

switch res.result {
case let .success(value):
let xjson : JSON = JSON(res.value)
if let firstUser = xjson.array?.first {
print(firstUser["firstName"].string!)
}

case let .failure(error):
print(error)
}
})

相关内容

  • 没有找到相关文章

最新更新