Pregunta

¿Es posible si tengo un nsstring y quiero usar NSJSonserialization? ¿Cómo hago esto?

¿Fue útil?

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!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top