JSON解析--原生&AFN

 1 #pragma mark 原生加载JSON
 2 - (void)loadJSON
 3 {
 4     // 1. NSURL
 5     NSURL *url = [NSURL URLWithString:@""];
 6     
 7     // 2. NSURLRequest
 8     NSURLRequest *request = [NSURLRequest requestWithURL:url];
 9     
10     // 3. NSURLConnection
11     [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
12         
13         if (connectionError != nil) {
14             NSLog(@"%@", connectionError.localizedDescription);
15         } else {
16             NSError *error = nil;
17             
18             NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
19             
20             if (error != nil) {
21                 NSLog(@"%@", error.localizedDescription);
22             } else {
23                 NSLog(@"%@", array);
24             }
25         }
26     }];
27 }
28 #pragma mark AFN加载JSON
29 - (void)loadJSON
30 {
31     // 1. NSURLRequest
32     NSURLRequest *request = [_httpClient requestWithMethod:@"GET" path:@"videos.php?format=json" parameters:nil];
33     
34     // 2. 连接
35     AFJSONRequestOperation *op = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSArray *JSON) {
36         
37         // 成功之后,直接使用反序列化出来的结果即可。
38         NSLog(@"%@", JSON);
39     } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
40         // 1> 网络访问获取数据出错
41         // 2> JSON的反序列化出错
42         
43         NSLog(@"%@ %@", error, JSON);
44     }];
45     
46     // 3. 将操作添加到队列或者start,操作就会启动
47     // 3.1 将操作添加到队列,开始多线程操作
48     [_httpClient.operationQueue addOperation:op];
49 //  [op start];
50 }
原文地址:https://www.cnblogs.com/orzmj123/p/3500552.html