Во-первых, не рекомендуется сохранять его в userDefault, вы можете использовать coredata / realm, а ваш контент - это словарь, содержащий массив, но вы можете сделать
struct Root: Codable {
let answer: Answer
}
struct Answer: Codable {
let id: Int
let username, address, phoneNumber, email: String
let createdAt, updatedAt, providerID: String
let isLogedIn: Int
let userID: String
let userType: Int
enum CodingKeys: String, CodingKey {
case id, username, address
case phoneNumber = "phone_number"
case email
case createdAt = "created_at"
case updatedAt = "updated_at"
case providerID = "provider_id"
case isLogedIn = "is_loged_in"
case userID = "user_id"
case userType = "user_type"
}
}
UserDefaults.standard.set(data,forKey:"AnyKey")
, затем прочитать данные и
let res = try? JSONDecoder().decode(Root.self,from:data)
если вам нужно удалить массив только тогда
do {
let tr = try JSONSerialization.jsonObject(with:data) as! [String:Any]
let arr = tr["answer"] as! [Any]
let ansData = try JSONSerialization.data(withJSONObject:arr, options:[])
UserDefaults.standard.set(ansData,forKey:"AnyKey")
} catch { print(error) }
После этого прочитайте его как
guard let data = UserDefaults.standard.data(forKey:"AnyKey") else { return }
let res = try? JSONDecoder().decode([Answer].self,from:data)