swift - 如何在 Swift 5 中解析来自 Alamofire 的模型结构的 JSON 响应?
问题描述
我尝试使用 Alamofire 发布 mysql 数据库,但我成功了,但我的响应似乎不是 json,我想将响应值传递给模型结构。我试过这段代码。哪里错了?如果您能提供帮助,我将不胜感激。
func register(registerModel:RegisterResponse,completion:@escaping (RegisterModel?)->() ){
let parameters: [String: Any] =
[
"email": "\(registerModel.email)",
"password": "\(registerModel.password)",
"first_name": "\(registerModel.first_name)",
"last_name": "\(registerModel.last_name)",
]
AF.request(registerUrl,method: .post,parameters: parameters,encoding: URLEncoding.httpBody,headers: nil).responseJSON(){ response in
//debugPrint(response)
switch response.result{
case .success(let data):
if response.data != nil {
print(data)
completion(data as? RegisterModel)
}
case .failure(let err):
print(err.localizedDescription)
}
}
}
输出:
{
result = "account already exists";
tf = 0;
verificationCode = "<null>";
}
解决方案
假设您RegisterResponse
是Decodable
,只需使用responseDecodable
:
AF.request(registerUrl, method: .post, parameters: parameters, encoding: URLEncoding.httpBody)
.responseDecodable(of: RegisterResponse.self) { response in
// Handle response.
}
推荐阅读
- jquery - 如何将数据从我的网站发送到我的 Arduino netshield
- python - Zlib 库图像压缩无法正常工作
- c# - C# 中的 OfficeOpenXML EPPlus - Excel 文件在写入一定大小的数据后会损坏
- node.js - 如果值是重复的 DynamoDB,则删除一行
- list - 列表减法过程中丢失的元素
- ruby - For 循环和 if 在 puts 函数中 - Ruby
- tensorflow - 在数据帧上运行 Universal-sentence-encoder-large 迭代时内存泄漏
- python - 即使在 KeepAspectRatio 和 SmoothTransition 之后如何在 QPixmaps 上获得更好的图像质量
- html - 如何在小视口上显示图像下方的文本?
- kotlin - Kotlin 如何指定我想要一个特定的 readLine()?