Jak převést JSON do slovníku v rychlém iOS?

hlasů
0

Ahoj Dělám aplikaci, která pracuje s API. Mám pracovní kód, který přijímá data z API. Ale myslel jsem si, že by bylo lepší, aby můj kód trochu čistší. Chci nastavit data z rozhraní API ve slovníku, ale nemohu zprovoznit. Jakákoliv pomoc by ocenili, dík!

Zde je výsledek api: zadejte

Chci nastavit AutorId a BranchId atd atd ve slovníku. A to je de kód, který mám teď. Toto je třída Project:

class Project: NSObject {
var AuthorId: String?
var BranchId: String?
var CompanyId: String?
var ContactId: String?
var Date: String?
var Deadline: String?
var Description: String?
var Id: String?
var State: String?
init(dictionary: [String: Any]) {
    self.AuthorId = dictionary[AuthorId] as? String
    self.BranchId = dictionary[BranchId] as? String
    self.CompanyId = dictionary[CompanyId] as? String
    self.ContactId = dictionary[ContactId] as? String
    self.Date = dictionary[Date] as? String
    self.Deadline = dictionary[Deadline] as? String
    self.Description = dictionary[Description] as? String
    self.Id = dictionary[Id] as? String
    self.State = dictionary[State] as? String

}

}

a tady jsem se snaží nastavit ji do slovníku:

func apiRequest() {
    apiRequestHeader()
    var running = false
    let urlProjects = NSURL(string: https://start.jamespro.nl/v4/api/json/projects/?limit=10)
    let task = session?.dataTask(with: urlProjects! as URL) {
        ( data, response, error) in
        if let taskHeader = response as? HTTPURLResponse {
            print(taskHeader.statusCode)
        }
        if error != nil {
            print(There is an error!!!)
            print(error)
        } else {
            if let content = data {
                do {
                    let dictionary = try JSONSerialization.jsonObject(with: content) as! [String:Any]
                    print(dictionary)

                    if let items = dictionary[items] as? [[String:Any]] {
                        let project = Project(dictionary: items)
                        print(project)
                        self.projects.append(project)

                        DispatchQueue.main.async(execute: {
                            self.tableView.reloadData()
                        })

                    }
                }
                catch {
                    print(Error: Could not get any data)
                }
            }
        }
        running = false
    }


    running = true
    task?.resume()

    while running {
        print(waiting...)
        sleep(1)
    }

}
Položena 21/07/2017 v 08:25
uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more