7
Tôi đã đọc this question và cố gắng phân tích cú pháp JSON khỏi phản hồi của AFNetworking trong Swift nhưng kết quả luôn là nil
.Không thể phân tích cú pháp JSON từ phản hồi của AFNetworkingObject
Dưới đây là đoạn trích từ mã của tôi:
let manager = AFHTTPRequestOperationManager()
manager.requestSerializer = AFJSONRequestSerializer()
manager.responseSerializer = AFJSONResponseSerializer()
manager.requestSerializer.setAuthorizationHeaderFieldWithUsername(username, password: password)
manager.POST("endpoint-that-respond-token-in-json",
parameters: nil,
success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
println(responseObject.description) // { token = "bd8f26da-219a-4a88-be80-b09207dfc067"; }
var x: NSString = responseObject.description
var error: NSError?
var data = x.JSONString().dataUsingEncoding(NSUTF8StringEncoding)
println(data) // <227b5c6e 20202020 746f6b65 6e203d20 5c226539 35613462 36642d38 6361612d 34343537 2d623937 612d3330 63613236 62316338 34315c22 3b5c6e7d 22>
var dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
println(dataString) // "{\n token = \"e95a4b6d-8caa-4457-b97a-30ca26b1c841\";\n}"
var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary!
println(json) // nil
},
failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
println(error)
})
N.B.
var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary // without "!" I will get EXC_BAD_INSTRUCTION at run time.
Oh man, bạn đã cứu mạng tôi. Cảm ơn nhiều. – attomos