Jam*_*mes 12 json objective-c ios afnetworking xcode5
我AFNetworking在Objective-C中设置了一个JSON帖子,并使用以下代码将数据发送到服务器:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"name": deviceName, @"model": modelName, @"pin": pin};
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"Content-Type" forHTTPHeaderField:@"application/json"];
[manager POST:@"SENSORED_OUT_URL" parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"JSON: %@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
我通过相同的请求收到信息,并希望将数据发送到 NSString.我该AFNetworking怎么做呢?
Aar*_*ger 28
responseObject是NSArray或NSDictionary.你可以在运行时检查isKindOfClass::
if ([responseObject isKindOfClass:[NSArray class]]) {
NSArray *responseArray = responseObject;
/* do something with responseArray */
} else if ([responseObject isKindOfClass:[NSDictionary class]]) {
NSDictionary *responseDict = responseObject;
/* do something with responseDict */
}
Run Code Online (Sandbox Code Playgroud)
如果你真的需要JSON的字符串,可以通过查看获得operation.responseString.
在这种情况下,当Web服务响应时JSON,AFNetworking将为您执行序列化,并且responseObject很可能是一个NSArray或NSDictionary对象.
与包含JSON内容的字符串相比,这样的对象应该对您更有用.
在我的情况下,它看起来像(也许它可以帮助)
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *jsonDict = (NSDictionary *) responseObject;
//!!! here is answer (parsed from mapped JSON: {"result":"STRING"}) ->
NSString *res = [NSString stringWithFormat:@"%@", [jsonDict objectForKey:@"result"]];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//....
}
];
Run Code Online (Sandbox Code Playgroud)
也很好检查响应对象的类型(如/sf/answers/1537371181/答案)
| 归档时间: |
|
| 查看次数: |
30171 次 |
| 最近记录: |