因此,我向我们的服务器发出了一个简单的GET请求,响应代码如下:
[[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"dataString: %@", dataString);
NSData *jsonData = [dataString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonContent = (NSDictionary*)[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
NSNumber * success = (NSNumber *)[jsonContent objectForKey: @"user_records_exist"];
if([success boolValue] == YES)
{
NSLog(@"true");
NSLog(@"success: %d", [success boolValue]);
} else {
NSLog(@"false");
NSLog(@"failure: %d", [success boolValue]);
}
}] resume];
我得到的日志如下:
dataString: "{\"user_records_exist\": true}"
false
failure: 0
我不确定自己在做什么错。如何获得
"user_records_exist"
键的值?谢谢
最佳答案
删除此代码:
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"dataString: %@", dataString);
NSData *jsonData = [dataString dataUsingEncoding:NSUTF8StringEncoding];
从原始数据获取响应字典:
[[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSDictionary *jsonContent = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
BOOL success = [[jsonContent objectForKey: @"user_records_exist"] boolValue];
if(success)
{
NSLog(@"true");
NSLog(@"success: %d", success);
} else {
NSLog(@"false");
NSLog(@"failure: %d", success);
}
}] resume];
关于ios - 使用Objective-C中的JSON数据的NSJSONSerialization读取NSDictionary集的键值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43607599/