AFNetworking y jSON

Estoy recibiendo la respuesta json de un API de service web. Quiero extraer los datos del producto del json. También quiero implementar esto usando AFNetworking.

{"products": [ { "product_id": "1170", "name": "zzzz®", "sort_order": 0, "brand": "zzzas", "product_category_id": "1090", "location_ids": [ "1078" ], "icon_url": "http://zzzzz.com/media/2502/zzzz.png", "icon_date": "Wed, 07 Nov 2012 14:03:47 GMT", "thumbnail_url": "http://zzzz.com/media/2591/zzdfs.png", "thumbnail_date": "Wed, 07 Nov 2012 14:04:02 GMT" }, { "product_id": "1126", "name": "ddddd®", "sort_order": 1, "brand": "dddsas", "product_category_id": "1110", "location_ids": [ "1095" ], "icon_url": "http://zzzzz.com/media/2507/ddddd.png", "icon_date": "Wed, 07 Nov 2012 14:03:48 GMT", "thumbnail_url": "http://zzzzz.com/media/2596/sssds.png", "thumbnail_date": "Wed, 07 Nov 2012 14:04:05 GMT" } ]} 

¿Alguien puede sugerir una manera de hacer esto . yo cómo se harán las cosas.

 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"link"]]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSDictionary *jsonDict = (NSDictionary *) JSON; NSArray *products = [jsonDict objectForKey:@"products"]; [products enumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop){ NSString *productIconUrl = [obj objectForKey:@"icon_url"]; }]; } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"Request Failure Because %@",[error userInfo]); } ]; [operation start]; 

Prueba esto.

Actualización 1: puede probar este https://github.com/SSamanta/SSRestClient

Actualización 2: https://github.com/SSamanta/SSHTTPClient (usando Swift)

Disponible Pod: pod 'SSHTTPClient', '~>1.2.2'

si está utilizando AFNetworking 3.0, AFJSONRequestOperation ya no existe, debe usar AFHTTPSessionManager :

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

Para analizar JSON con AFNetworking, simplemente cree una subclass y agregue lo siguiente durante la initialization.

 [self registerHTTPOperationClass:[AFJSONRequestOperation class]]; 

Luego llamar a un método como GET:parameters:completion: llamará al bloque de finalización con un NSDictionary como parámetro de response (suponiendo que JSON sea válido).

Para download las imágenes, suponiendo que desea mostrarlas, consulte UIImageView + AFNetworking .

Si recién está comenzando, recomiendo utilizar RestKit para esta tarea (hace uso de AFNetworking). Vea un ejemplo aquí .

Compruebe el ejemplo de AFNetworking https://github.com/AFNetworking/AFNetworking/tree/master/Example

Para la descarga de imágenes, EGOCache & EGOImageLoading puede ser una buena opción https://github.com/enormego/EGOImage

Utilice JSONModel para analizar json en el object.

Primero, para ejecutar AFNetworking primero deberá instalar "CocoaPods". ¿Que es esto? CocoaPods es un administrador de dependencies para Objective-C que hace que la installation de bibliotecas de terceros como AFNetworking sea mucho más rápida y segura. Se proporciona como una Ruby Gem que puedes instalar de la siguiente manera:

Abra el terminal y ejecute los siguientes commands:

 sudo gem install cocoapods -V 

Se paciente. Este command puede demorar algún time en finalizar, por lo que la opción "-V" le proporcionará datos detallados sobre lo que está sucediendo.

A continuación ejecutamos:

 pod setup 

Lo que configura nuestra installation de CocoaPods.

Ahora tenemos que crear un PodFile que servirá como nuestro file de configuration para CocoaPods.

Regreso a la terminal y escribimos los siguientes commands:

 touch Podfile open -e Podfile 

El primer command creará un file llamado "Podfile" con el editor táctil Unix. La segunda línea abrirá este file recién creado para su edición. Por ahora, debería ver una window vacía de TextEdit abierta. Ahora pegamos lo siguiente dentro de este file:

 platform :ios, '7.0' pod "AFNetworking", "~> 2.0" 

Ahora es el momento de configurar nuestro entorno de trabajo de Cacao. IMPORTANTE: asegúrese de cambiar su directory con su terminal en el DIRECTORIO ACTUAL DEL PROYECTO XCODE utilizando el command 'cd' en la terminal. Ejemplo:

 cd /user/xcode/myproject 

Una vez que esté seguro de que está en el directory correcto, ejecute el siguiente command de terminal:

 pod setup 

Y luego instalamos las dependencies en nuestro proyecto escribiendo:

 pod install 

Ahora, esta es una nota importante: dado que está intentando instalar un proyecto que anteriormente no estaba dentro de su proyecto Xcode actual, debe crear un Área de trabajo para su proyecto Xcode actual (si aún no lo ha hecho). Para crear un espacio de trabajo para su proyecto Xcode haga lo siguiente:

 File > Save Workspace 

Una vez que haya terminado, navegue hasta el directory de su file de área de trabajo Xcode y ejecute el siguiente command:

 open YourProjectName.xcworkspace 

Ahora puede usar "importar" al comienzo de cualquiera de sus files para acceder a las funciones integradas de API de AFNetworking.