如何在 swift 的 Alamofire 中打印来自 post 请求的响应的 json 内容?
How can I print the json content of the response from post request in Alamofire in swift?
好的,所以我使用的是 alamofire,我传递的参数是有效的。这是到目前为止的代码:
Alamofire.request(.POST, "http://mywebservice.com", parameters: myparameters)
.response { (request, response, data, error) in
if(error != nil){
print("error= \(error)")
}else{
print("there was no error so far ")
print(data)
var json = JSON(data!)
print(json) //prints unknown
print(json["id"]) //prints null
}
}
}
我尝试了不同的方法,但到目前为止没有任何效果。我正在使用 alamofire 和 swiftyjson,来自网络服务的响应 json 是:
{
"id": "432532gdsg",
"username": "gsdgsdg"
}
并且我想在成功的情况下分别打印这两个值。我该怎么做?
您的问题来自这一行:
var json = JSON(data!)
来自 SwiftyJSON 的 JSON()
初始化器可以接受多种类型的输入。
如果您没有在 init 中指定类型,SwiftyJSON 会尝试自行推断类型。
不幸的是,它有时会默默地失败,因为它会误解输入。
因此,当将 SwiftyJSON 与 NSData 一起使用时,解决方案是为 JSON 初始化程序指定 "data:" 参数:
var json = JSON(data: data!)
试试这个
Alamofire.request(.POST, "http://mywebservice.com", parameters : myparameters , encoding : .JSON )
.responseData{ response in
let json = JSON(data.response.result.value!)
print(json)
let id=json["id"]
let username=json["username"]
print(id)
print(username)
}
好的,所以我使用的是 alamofire,我传递的参数是有效的。这是到目前为止的代码:
Alamofire.request(.POST, "http://mywebservice.com", parameters: myparameters)
.response { (request, response, data, error) in
if(error != nil){
print("error= \(error)")
}else{
print("there was no error so far ")
print(data)
var json = JSON(data!)
print(json) //prints unknown
print(json["id"]) //prints null
}
}
}
我尝试了不同的方法,但到目前为止没有任何效果。我正在使用 alamofire 和 swiftyjson,来自网络服务的响应 json 是:
{
"id": "432532gdsg",
"username": "gsdgsdg"
}
并且我想在成功的情况下分别打印这两个值。我该怎么做?
您的问题来自这一行:
var json = JSON(data!)
来自 SwiftyJSON 的 JSON()
初始化器可以接受多种类型的输入。
如果您没有在 init 中指定类型,SwiftyJSON 会尝试自行推断类型。
不幸的是,它有时会默默地失败,因为它会误解输入。
因此,当将 SwiftyJSON 与 NSData 一起使用时,解决方案是为 JSON 初始化程序指定 "data:" 参数:
var json = JSON(data: data!)
试试这个
Alamofire.request(.POST, "http://mywebservice.com", parameters : myparameters , encoding : .JSON )
.responseData{ response in
let json = JSON(data.response.result.value!)
print(json)
let id=json["id"]
let username=json["username"]
print(id)
print(username)
}