我正在考虑在我的一个项目中使用AFNetworking。但我有一个问题。
以下是代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager GET:completeUrlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@", responseObject);
} failure:nil];
问题是respose对象。它是一个只有里面值的字典。该值显示为NSObject!那应该是一个带有几个键/值对的NSDictionary。
这是原始的json:
{
"signInResponse": {
"userName": "971777771554300",
"duration": 315360000000,
"token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"idleTimeout": 2592000000
}
}
为什么解析器失败?另外我想要注意的是,url并不以“.json”结尾,因为它是动态创建的。
另一个小问题:几个resposes返回需要在其中的键所在的json对象 响应字典的形式为“@importantKey”或“#key”。我记得有些解析器无法在响应中返回这些键,这对AFNetworking来说是个问题吗?
答案 0 :(得分:0)
如果您使用alamofire,这个小片段可以提供帮助,也许您需要像这样进行投射:
var innerData = data!["signInResponse"]!!
var innerData2 = innerData[0]
var DataDict = (innerData2 as! NSDictionary) as Dictionary
self.userName = DataDict["userName"]! as! String