2012-01-23 23 views
6

Tengo un objeto NSData, necesito convertirlo en un objeto NSDictionary.Convertir NSData a JSON

NSData *data = ....; 

ahora tengo que convertir esto en un NSDictionary, ¿cómo puedo hacer esto mediante programación?

nota: Después de guardar NSData en NSDictionary debería poder acceder a key value pares del NSDictionary.

no tengo un código para demostrar mis labores hasta ahora, sólo he creado el objeto NSData, y no tienen idea de continuar :)

+3

Y qué formato es 'data' en? Necesitará un poco de lógica para convertir lo que sea en un diccionario a menos que esté en uno de los formatos de serialización estándar. –

+0

¿Son datos JSON los que desea convertir? –

+0

Sí, es información JSON. ¿Puede alguien mostrarme un código de muestra o un tutorial que demuestre la conversión – Illep

Respuesta

3

Puede subclase MKNetworkOperation y reemplaza el método responseJSON con lo siguiente:

-(id) responseJSON 
{ 
    NSString *rawJSON; 
    id jsonValue = nil; 
    if ((rawJSON = [[NSString alloc] initWithData:[self responseData] encoding:NSUTF8StringEncoding]) != nil) { 
     SBJsonParser *jsonParser = [[SBJsonParser alloc] init]; 
     if ((jsonValue = [jsonParser objectWithString:rawJSON]) == nil) { 
      NSLog(@"This string doesn't seem to be JSON: '%@'\nraw Data : '%s'", rawJSON, (char *)[[self responseData] bytes]); 
      return [self responseString]; 
     } 
    } 
    else { 
     NSLog(@"This data doesn't seem to be an UTF8 encoded string: %@", [self responseData]); 
     return [self responseString]; 
    } 

    return jsonValue; 
} 
3

favor confirmar este vínculo de desbordamiento de pila, ya he consumido los servicios JSON, te ayudarán mucho. Toda la codificación está allí.

JSON Data Conversion

Y aquí está el tutorial con el proyecto de ejemplo

JSON Parse Tutorial

Espero que le resulte útil

+0

estoy usando MKNetworkKit. ¿Puede ayudarme en eso? – Illep

+2

No lo he usado, me gusta usar métodos y marcos nativos de iOS, pruébelo. NSJSONSerialización encontrará que es más fácil serializar y deserializar –

1

lo recomiendo invocando SBJSON framework, salvó mi tiempo por muchas veces, exactamente terminado mi trabajo y fácil de usar. No necesita conocer los detalles del algoritmo de conversión, simplemente descárguelo e inícielo.

Es posible que desee descargarlo desde here, luego siga this tutorial para hacer sus cosas.

+0

Bueno, estoy usando MKNetworkKit. Y estoy un poco perdido – Illep

+0

Lo siento, aún no he usado MKNetworkKit. Me siento afortunado de encontrar SBJSON por primera vez cuando necesito un analizador JSON. Le sugiero que recurra a SBJSON, o tal vez quiera modificar su pregunta para formular un problema específico sobre MKNetworkKit. Espero poder ayudar. – Skyler