我是 swift 新手,我正在尝试解析一些从我拥有的私有 API 中检索的简单 JSON 数据。我正在使用 SwiftJSON 库。
无论我做什么,我都无法将来自 JSON 响应的“video_upload_id”值分配给变量“videoUploadId”。我希望我提供了足够的信息来获得帮助。谢谢
这是一段代码
let task = session.dataTaskWithRequest(request, completionHandler: { (data : NSData!, response, error : NSError!) -> Void in
if (error == nil) {
// Success
let statusCode = (response as NSHTTPURLResponse).statusCode
println("Status Code: \(statusCode)\r\n")
println("Response: \(response)\r\n")
println("Data: \(data)\r\n")
let dataContent = NSString(data: data!, encoding: NSUTF8StringEncoding)!
println("UTF8 Data: \(dataContent)\r\n")
let json = JSON(dataContent)
if let videoUploadId = json["video_upload_id"].int {
println("Video Upload ID (Dict: int): \(videoUploadId)")
}
else if let videoUploadId = json["video_upload_id"].string {
println("Video Upload ID (Dict: string): \(videoUploadId)")
}
else if let videoUploadId = json[0].int {
println("Video Upload ID (Array: int): \(videoUploadId)")
}
else if let videoUploadId = json[0].string {
println("Video Upload ID (Array: string): \(videoUploadId)")
}
else {
println(json["video_upload_id"].error)
}
}
else {
// Failure
println("URL Session Task Failed: %@", error.localizedDescription);
}
})
task.resume()
这是我从控制台收到的内容:
登录响应:HTTP 200 状态码:201
响应:{ URL:https:/// videos / uploads/} {状态码:201,标题{连接=“保持活动”;“内容长度”= 24;“内容类型”=“应用程序/json”;日期 =“星期日,2015 年 1 月 25 日 01:02:42 GMT”;位置=“https://// videos / uploads/”;服务器 = "Apache/2.2.15 (CentOS)"; "Set-Cookie" = "session=eyJzZZXNzaW9uX3Rva2VuIjp7IiBiIjoiUzAxWGFYRnlVVGM1YjBsa1kxWkJiV2xrYVZwcFZXdDFiR0ZLYW5GQ1VqRjFjbk5GIn19.B6XSMg.HXatQ76ZFaoZEQsnNu1BgOnly;"; } }
数据:<7b227669 64656f5f 75706c6f 61645f69 64223a20 3736307d>
UTF8 数据:{“video_upload_id”:760}
可选(错误域=SwiftyJSONErrorDomain Code=901 "Dictionary["video_upload_id"] 失败,它不是字典" UserInfo=0x170238620 {NSLocalizedDescription=Dictionary["video_upload_id"] 失败,它不是字典})
正如您从代码和控制台输出中看到的那样,我试图以几种不同的方式设置变量,所有这些似乎都失败了。我收到错误“字典 [“video_upload_id”] 失败,它不是字典”我什至尝试在前面加上“[”并附加“]”来尝试查看它是否是格式问题。
有什么线索吗?