iOS Objective-C 获取网络 JSON 数据详解
要在 iOS 中获取网络上的 JSON 内容,可以使用 NSURLSession 和 NSJSONSerialization 类。
首先,创建一个 NSURLSession 对象,然后使用 dataTaskWithURL 方法来获取 JSON 数据。在任务完成后,可以使用 NSJSONSerialization 类将获取到的数据解析为 NSDictionary 或 NSArray。
下面是一个示例代码:
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:'https://example.com/data.json'];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog('Error: %@', error);
} else {
NSError *jsonError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
if (jsonError) {
NSLog('JSON Error: %@', jsonError);
} else {
// 在这里处理获取到的 JSON 数据
NSLog('JSON: %@', json);
}
}
}];
[dataTask resume];
在上述示例中,我们首先创建了一个 NSURLSession 对象,然后使用 dataTaskWithURL 方法创建一个 NSURLSessionDataTask 任务,该任务会在指定的 URL 上下载数据。当任务完成后,completionHandler 块会被调用。
在 completionHandler 块中,我们首先检查是否有错误发生。如果有错误,我们可以在控制台打印错误信息。如果没有错误,我们使用 NSJSONSerialization 的 JSONObjectWithData 方法将获取到的数据解析为 NSDictionary 对象。如果解析过程中发生错误,我们同样可以在控制台打印错误信息。否则,我们可以在这里处理获取到的 JSON 数据。在示例中,我们简单地打印了获取到的 JSON 内容。
请注意,上述代码是在后台线程中执行的,因此如果需要更新 UI,应该在主线程中执行相关操作。
原文地址: http://www.cveoy.top/t/topic/qpkB 著作权归作者所有。请勿转载和采集!