NSJSONSerialización de NSString

¿Es posible si tengo un NSString y quiero usar NSJSONSerialization? ¿Cómo hago esto?

Primero necesitará convertir su NSString a NSData haciendo lo siguiente

 NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 

entonces simplemente use el método JSONObjectWithData para convertirlo a JSON

 id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

Necesita convertir su NSString a NSData , en ese punto puede usar el +[NSJSONSerialization JSONObjectWithData:options:error:] .

 NSString * jsonString = YOUR_STRING; NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError * error = nil; id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; if (!json) { // handle error } 

Puede convertir su cadena a NSData diciendo:

 NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; 

A continuación, puede usarlo con NSJSONSerialization . Sin embargo, NSJSONSerialization count que NSJSONSerialization es solo iOS5, por lo que sería mejor utilizar una biblioteca como TouchJSON o JSONKit, que de todos modos le permiten trabajar directamente con cadenas de todos modos, lo que le ahorra el paso de convertir a NSData.

Escribí una publicación de blog que demuestra cómo envolver la class nativa de iOS JSON en un protocolo general junto con una implementación que usa la class nativa de iOS JSON.

Este enfoque hace que sea mucho más fácil usar la funcionalidad nativa y networkinguce la cantidad de código que tiene para escribir. Además, hace que sea mucho más fácil cambiar la implementación nativa con, por ejemplo, JSONKit, si el nativo resultara ser insuficiente.

http://danielsaidi.wordpress.com/2012/07/04/ios-json/

La publicación del blog contiene todo el código que necesita. Solo copy / pega 🙂

¡Espero eso ayude!