NSJSonserialización de NSString
-
28-10-2019 - |
Pregunta
¿Es posible si tengo un nsstring y quiero usar NSJSonserialization? ¿Cómo hago esto?
Solución
Primero necesitará convertir su NSString
a NSData
Al hacer lo siguiente
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
Entonces simplemente usa el JSONObjectWithData
Método para convertirlo a JSON
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
Otros consejos
Necesitas convertir tu NSString
a NSData
, en ese momento puedes usar el +[NSJSONSerialization JSONObjectWithData:options:error:]
método.
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];
Entonces puedes usarlo con NSJSONSerialization
. Nota sin embargo que NSJSONSerialization
es solo iOS5, por lo que es mejor usar una biblioteca como TouchJson o Jsonkit, los cuales de todos modos te permiten trabajar directamente con cadenas, ahorrándole el paso de convertir a NSData.
Escribí una publicación de blog que demuestra cómo envolver la clase nativa de iOS JSON en un protocolo general junto con una implementación que usa la clase nativa de 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 resultaría insuficiente.
http://danielsaidi.com/blog/2012/07/04/json-in-ios
La publicación del blog contiene todo el código que necesita. Solo copia / pegue :)
¡Espero eso ayude!