前提・実現したいこと
Swiftで以下のようなUserの構造体作成して、APIから返ってくるuserをJSONEncoderでエンコードしてUserDefaultsに保存する方法が分かりません。
Swift
1struct User: Decodable, Identifiable, Encodable { 2 var id: Int 3 var name: String 4 var email: String 5 var deleted_at: String? 6 var created_at: String 7 var updated_at: String 8}
APIの結果は以下のようになっております。
[Result]: success(Optional(6030 bytes)) status = "SUCCESS LOGIN"; user = { id = 1; name = test01; email = "test01@example.com"; "created_at" = "2021-03-04T06:31:57.896+09:00"; "updated_at" = "2021-03-07T20:43:18.051+09:00"; "deleted_at" = "<null>"; };
APIで返ってきているuserをUserDefaultsに保存してTextフィールドなどにuser.nameのように表示するやり方、方法が分かりません。
Swift
1AF.request("http://127.0.0.1:3000/login.json", 2 method: .post, 3 parameters: parameters, 4 encoder: JSONParameterEncoder.default) 5 .validate(contentType: ["application/json"]) 6 .responseJSON { response in 7 if response.response?.statusCode == 200 { 8 if let json = response.value as? NSDictionary { 9 print(json) 10 if json["status"] as? String == "SUCCESS LOGIN" { 11 12 // この部分にuserをJSONEncoderでエンコードしてUserDefaultsに保存する処理を書きたいです。 13 14 print("SUCCESS LOGIN") 15 } else if json["status"] as? String == "INVALID" { 16 debugPrint(response) 17 print("IN VALID") 18 } 19 } 20 } 21 }
API通信は上記のようにalamofireを利用して実装しております。
是非アドバイスなどよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/28 04:31
退会済みユーザー
2021/09/28 05:37
2021/09/28 22:58
退会済みユーザー
2021/09/28 23:06
2021/09/29 01:07