2012-04-17 21 views
15

Tengo una cadena JSON como objeto NSString en iOS. Quiero analizar esto y sacar los parámetros dados en la cadena JSON. ¿Existe una forma eficiente de analizar esto o es la única forma de buscar subcadenas, etc.?iOS JSON NSString Parse

Respuesta

48

La manera de hacerlo con iOS 5 es utilizar la clase NSJSONSerialization. Usted tendrá que convertir primero su cadena a un objeto NSData, y llamar al método de la clase JSONObjectWithData

NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *e; 
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e]; 

Tenga en cuenta que JSONObjectWithData se devolverá o bien un NSDictionary o un NSArray, dependiendo de si su cadena JSON representa un un diccionario o una matriz .

+9

Observe que debe usar 0 o NSJSONReadingMutableContainers para las opciones para suprimir la advertencia del compilador. –

0

Un buen marco para convertir cadenas JSON en objetos Objective-C (NSArray y NSDictionary) es SBJson (Github).

Uso:

NSDictionary *dict = [myJsonString JSONValue]; 
+0

¿Hay alguna manera de hacerlo con iOS 5 JSON? – user1120008

+0

Sí, pero está más involucrado y limita su aplicación a ejecutarse solo en iOS 5. –

+0

Estoy de acuerdo, SBJSON es su amigo. Mucho más conveniente que la API oficial, y también funciona con versiones anteriores de iOS. – aroth