我对swift很陌生,首先我想知道编码和解码之间的主要区别是什么。其次,我尝试从响应中获取特定值,如下所示:
我想解码gender_category的值并将其放入piker,这是我到目前为止所做的:
struct Gender: Decodable {
let result : [Result]
enum CodingKeys :String, CodingKey {
case result
}
struct Result: Decodable {
let genderCategory: String
enum CodingKeys : String, CodingKey {
case genderCategory = "gender_category"
}
}
}
我得到响应的代码是这样的:
func getGenderValueFromJSON() {
let url = URL(string: "http://www.----------.com/GenderList/get")
URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error == nil{
do{
let result = try JSONDecoder().decode(Gender.self, from: data!)
print(result)
}catch let error as NSError{
print("Parse Error\(error)")
}
}
}.resume()
}
我以这种方式得到我的结果:
性别(结果:[something.Gender.Result(genderCategory:“Male”),something.Gender.Result(genderCategory:“Female”),something.Gender.Result(genderCategory:“Transgender”),something.Gender.Result(性别类别:“其他”)])
但是我怎样才能只得到genderCategory 的值呢?