【发布时间】:2014-07-20 08:17:28
【问题描述】:
我在 Laravel (PHP) 中为我的应用程序构建了一个后端 API。我正在调用的方法(创建用户)的返回是:
{"success":true,"userid":"23"}
但是当在 Swift 中访问 userid 时它返回一个空值?它可以访问success 变量。
这是我的请求的代码:
// create the user
var request = NSMutableURLRequest(URL: NSURL(string: "http://localhost/laravel/myapi/public/createUser"))
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var params = ["username":txtUsername.text, "email":txtEmail.text, "password":txtPassword.text] as Dictionary
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
// println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
var err: NSError?
let json = NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments & .MutableLeaves, error: &err) as NSDictionary
if(err) {
println(err!.localizedDescription)
}
else {
var success = json["success"] as? Int
if(success == 1) {
var id = json["userid"] as? Int
self.lblTaken.text = "\(id)"
}
}
})
task.resume()
println("Body: \(strData)") 打印出来:
Body: {"success":true,"userid":"23"}
但是当尝试访问userid 变量时,它返回nil
我在尝试访问用户 ID 时是否做错了什么?
更新
如果我打印出来:
println(json.valueForKey("userid"))
它会打印出用户 ID,但如果我将它分配给变量,该变量仍会返回 null
【问题讨论】:
-
`println("JSON:(json)") 显示什么?
-
@Paulw11 它打印出来:
JSON:{ success = 1; userid = 23; }