解析 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。
如果您需要更多帮助,请告诉我。
你好,我是 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。
如果您需要更多帮助,请告诉我。