Was*_*sim 4 json objective-c ios restkit
我创建了一个登录页面,它使用Restkit RKClient发送登录详细信息,并获取JSON数据(用户或错误).我希望能够在没有对象映射的情况下解析JSON数据,只需将JSON解析为字典.原因是它只是一个简单的登录发送用户名和密码,如果我设置对象映射,我将必须将登录详细信息设置为Login对象,然后设置路由等...它似乎是一个有点啰嗦.
这是我的代码
- (IBAction)login:(id)sender
{
[self.activityIndicator startAnimating];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObject:self.username.text forKey:@"username"];
[params setObject:self.password.text forKey:@"password"];
[params setObject:@"login" forKey:@"type"];
[[RKClient sharedClient] post:@"/login" params:params delegate:self];
}
- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
if ([request isPOST]) {
if ([response isJSON]) {
NSLog(@"Got a JSON response back from our POST: %@", response.bodyAsString);
}
}
[self.activityIndicator stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)
如何将JSON数据提供给可读对象?谢谢
您只需在RKResponse对象上调用parsedBody:nil,并将返回的对象分配给NSDictionary:
responseDict = [response parsedBody:nil];
Run Code Online (Sandbox Code Playgroud)
作为额外的检查,我使用一些方便的方法来检查一个成功的响应:
- (bool) wasRequestSuccessfulWithResponse:(RKResponse*)response {
bool isSuccessfulResponse = NO;
id parsedResponse;
NSDictionary *responseDict;
if(response != nil) {
parsedResponse = [response parsedBody:nil];
if ([parsedResponse isKindOfClass:[NSDictionary class]]) {
responseDict = [response parsedBody:nil];
if([[responseDict objectForKey:@"success"] boolValue]) {
isSuccessfulResponse = YES;
}
}
}
return isSuccessfulResponse;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |