我有下载数据的代码:
let parameters = [
"NationalCode": "06090632",
"password": "0012"
]
let url = "http://android/home/login"
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.httpBody).responseJSON { response in
if let data = response.data {
let json = String(data: data, encoding: String.Encoding.nonLossyASCII)
print(json)
self.lbl1.text=json
}
}
我的结果是真的:
Optional("{\"id\":\"3\",\"name\":\"jac\"}")
现在我想循环每个结果项。我想打印" id"在一个标签和"名称"在另一个标签。 我怎样才能做到这一点? (我是斯威夫特的新人)
答案 0 :(得分:1)
您需要使用JSONSerialization对象来正确解析您的json。该对象具有静态方法jsonObject,它返回一个Any Object
JSON由Dictionary或Array表示,因此您需要使用正确的JSON类型转换Any返回
在您的示例中,JSON包含一个Dictionary。键是字符串类型,因此您需要确定键上关联的值的类型。在您的示例中,Type都是String。
所以,你需要这样做:
let json = try? JSONSerialization.jsonObject(with: data, options: [])
guard let dictionary = json as? [String:String] else { return }
print(dictionary["name"])
希望这能帮到你;)