json - 在swift中使用本地json文件登录功能
问题描述
我有一个 login.json 文件,如下所示:
{
"data": [
{
"name": "saranya@reachwebexperts.com",
"pass": "pass"
},
{
"name": "test@gmail.com",
"pass": "1234"
},
{
"name": "test2@gmail.com",
"pass": "password"
}
]
}
现在我有一个带有用户名和密码的登录屏幕,因此当用户输入与此 json 文件匹配的正确用户名和密码时,登录成功,否则登录失败。
我已经解析了 json 文件,但无法将其与用户名和密码匹配。
解决方案
使用以下模型解析JSON,Codable
struct Root: Decodable {
let data: [User]
}
struct User: Decodable {
let name: String?
let pass: String?
let age: String?
}
假设用户在登录时输入了以下详细信息,
let username = "saranya@reachwebexperts.com"
let password = "pass"
解析后,可以使用 . 匹配用户名和密码contains(_:)
。
do {
let response = try JSONDecoder().decode(Root.self, from: data)
let isValid = response.data.contains { $0.name == username && $0.pass == password }
print(isValid)
} catch {
print(error)
}
推荐阅读
- javascript - OpenLayers 将几何图形渲染到 Canvas
- ios - 在 spritekit 游戏中获取屏幕的触摸位置
- jquery - 如何使用jquery获取页面加载时间
- r - R中的条件模拟(使用克里金法)与并行化?
- javascript - 如果在 foreach 中其他
- php - PHP表单数据检查提交按钮名称
- google-apps-script - gmail 插件中 UrlFetchApp.fetch() 的 HTTP 失败回调
- python - 算术表达式中的 ufunc 内存消耗
- php - 重定向到登陆页面:header("Location:index.php");
- java - 如何重置 for 循环并简化它?