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];