簡體   English   中英

從文本文件中解碼 SWIFT 模型類

[英]Decoding SWIFT model class from text file

我有一個模型類

class User{
var name:String
var number:Int
}

我有這個下載的詳細信息作為格式的文本文件

firstname:John
rollnumber:234

5

我怎樣才能為此正確使用自定義裝飾器。

注意:鍵 'firstname' 'rollnumber' 是動態的,是從后端獲得的。

像這樣解析,將響應作為Dict傳遞給init方法

class User{
var name:String?
var number:Int?
   init(With dict:[String:Any]){
     if let value = dict["firstname"] as? String{
       name = value
     }
     if let value = dict["rollnumber"] as? Int{
       number = value
     }
  }

}

會是這樣的:

struct User: Decodable {

    let name: String
    let number: Int

    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: UserKeys.self)
        name = try container.decode(String.self, forKey: .name)
        number = try container.decode(Int.self, forKey: .number)
    }

    private enum UserKeys: String, CodingKey {
        case name = "firstname"
        case number = "rollnumber"
    }


    static getUser(jsonData: Data) -> User? {
        do {
            let user = try JSONDecoder().decode(User.self, from:jsonData)
            return user
        } catch {
            return nil
        }
   }

}

並獲取用戶:

User.getUser(jsonData: data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM