解析 JSONArray 包含 JSONObjects Swift

Parse JSONArray contains JSONObjects Swift

你好,我是 swift 的新手,我有来自 alamofire 的 responseJson,由 jsonArray 组成,包含像这样的 jsonObjects

[{"id":"1","name":"person1"},{"id":"2","name":"person2"}]

我如何将它解析为这个自定义模型的数组

class Person {
  var name : String
  var id : String
}

我做了很多搜索,但找不到与我相同的案例,而且我无法使用 Codable,因为我使用的是 xcode 8,无法升级我的 xcode现在版本为 9

我收到这样的回复

Alamofire.request(url).responseJSON{ response in
            if(response.result.isSuccess)
            {
                if let jsonarray = response.result.value as? [[String: Any]] 
                    {
                      //what to do here ?
                    }
            }
        }
if let jsonarray = response.result.value as? [[String: Any]]{
    //what to do here ?
    var persons:[Person] = []
    for userDictionary in jsonarray{
        guard let id = userDictionary["id"] as? String, let name = userDictionary["name"] as? String else { continue }
        persons.append(Person(id, name))
    }
    //Persons complete.
}

对所需变量使用guard else。 如果有额外的变量可以是可选的,比如 Person 中的 var age:Int?,你可以这样做:

for userDictionary in jsonarray{
    guard let id = userDictionary["id"] as? String, let name = userDictionary["name"] as? String else { continue }
    let age = userDictionary["age"] as? Int
    persons.append(Person(id, name, age))
}

@托尼,

swift4 中,您可以 codable 协议解析有助于编写通用代码的 JSON。假设如果将来要求添加 dob 比它非常简单。 在 swift3 中,您可以使用对象映射器 class。

如果您需要更多帮助,请告诉我。