如何将数据从JSON保存到模型

时间:2020-09-21 04:01:09

标签: swift parsing request

我有一个API,我用alomofire进行了解析,我想将解析后的json保存到模型中 这是我的请求,我想将聊天保存到ChatInstanceModel。 这是我的 NetworkingManager

    func getChatList(completionHandler: (@escaping (ChatInstanceModel) -> Void)) {
        guard let url = URL(string: urlOfIntanceAPI) else { return }
        
        let headers: HTTPHeaders = [
            "Authorization" : "FastToken 8af34fc7c2557517d8a3e747e497de6491a16350df6fa0af8afcbbe72035484efae69d46efa8a47feb75be3250d025b01f42b3b5ad723e5a32afc887c1f6879629b86655ce49e19cada8e289b38d79061160f538c6fa59388076396de1cd2886e2c2e8c5f706ad2bb79a23f034b889c835dd288e44c0cc257d048a22093e51226a60b198bf72aa40a11829771147b4d5"
        ]
        
        AF.request(url, method: .get, headers: headers).responseData { (responseData) in
            switch responseData.result {
            case .success(let data):
                guard let chats = try? JSONDecoder().decode(ChatInstanceModel.self, from: data) else { return }
                
                completionHandler(chats)
            case .failure(let error):
                print(error)
            }
        }
    }

这是我的模特

struct ChatInstanceModel: Codable {
    let title: String
    let avatar: String?
    let unread_client: Int?
}

这是我要保存的api

{
    "pk": 3,
    "title": "None",
    "avatar": null,
    "unread_client": 0,
    "unread_manager": 0,
    "is_online": false,
    "is_typing": false,
    "last_seen": null,
    "manager": null,
    "last_update": null
}

1 个答案:

答案 0 :(得分:0)

这里是一个示例,说明如何使用ChatInstanceModel从API获取响应后如何保存completionHandler实例。

class ViewController: UIViewController {
    var chats: ChatInstanceModel?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        getChatList { (chats) in
            self.chats = chats
        }
    }
}

这只是您当前指定的问题陈述的一个简单示例。

相关问题