ios objective-c iphone ipad nsjsonserialization

ios - NSJSONSerializaciĆ³n de NSString



objective-c iphone (4)

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

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

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

La publicación del blog contiene todo el código que necesita. Solo copie / pegue :)

¡Espero eso ayude!

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


Necesita convertir su NSString en 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 en NSData diciendo:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

Luego puede usarlo con NSJSONSerialization . Sin embargo, NSJSONSerialization cuenta que NSJSONSerialization es solo iOS5, por lo que es mejor que utilice una biblioteca como TouchJSON o JSONKit, que le permiten trabajar directamente con cadenas de todos modos, ahorrándole el paso de convertir a NSData.


Primero deberá 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];