我该如何解析json的post方法?

时间:2017-09-02 14:27:16

标签: ios swift3

我有下载数据的代码:

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"在一个标签和"名称"在另一个标签。 我怎样才能做到这一点? (我是斯威夫特的新人)

1 个答案:

答案 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"])

希望这能帮到你;)