如何在swift中打印Alamofire中的帖子请求的响应的json内容?

时间:2016-03-12 16:36:52

标签: ios swift alamofire swifty-json

好的,所以我正在使用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,来自webservice的响应json是:

{
  "id": "432532gdsg",
  "username": "gsdgsdg"
}

我希望在成功的情况下分别打印两个值。我该怎么办?

2 个答案:

答案 0 :(得分:4)

您的问题来自这一行:

var json = JSON(data!)

来自SwiftyJSON的JSON()初始化程序可以采用多种类型的输入。

如果您未在init中指定类型,SwiftyJSON会尝试推断类型本身。

不幸的是,它有时会无法静默,因为它会误解输入。

因此,当将SwiftyJSON与NSData一起使用时,解决方案是指定"数据:" JSON初始化程序的参数:

var json = JSON(data: data!)

答案 1 :(得分:2)

试试这个

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)          
}