首页 > 解决方案 > 在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 文件,但无法将其与用户名和密码匹配。

标签: jsonswiftauthentication

解决方案


使用以下模型解析JSONCodable

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)
}

推荐阅读