¿Es posible si tengo un NSString y quiero usar NSJSONSerialization? ¿Cómo hago esto?NSJSONSerialización de NSString
Respuesta
primer lugar se necesita para convertir su NSString
a NSData
haciendo lo siguiente
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
continuación, sólo tiene que utilizar el método JSONObjectWithData
para convertirlo a JSON
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
para mayor comodidad, puede poner este código en NSJSONSerialization Category. – jianpx
Use 'NSJSONSerialization JSONObjectWithData' con cuidado, ya que, aunque tiene un parámetro NSError *, ¡podría lanzar una excepción cuando ocurra un error! Es recomendable incluirlo en un bloque '@try {} @catch (...)'. – LaborEtArs
Puede convertir su cadena a NSData diciendo:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
A continuación, puede utilizarlo con NSJSONSerialization
. Sin embargo, tenga en cuenta que NSJSONSerialization
es solo iOS5, por lo que es mejor utilizar una biblioteca como TouchJSON o JSONKit, que le permiten trabajar directamente con cadenas de todos modos, ahorrándole el paso de convertir a NSData.
Necesita convertir su NSString
en NSData
, en ese punto puede usar el método +[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
}
escribí un blog publicación que muestra cómo ajustar la clase nativa JSON de iOS en un protocolo general junto con una implementación que usa el lenguaje nativo clase 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
publicar el blog contiene todo el código que necesita. Solo copie/pegue :)
Espero que ayude!
¡Gracias! ¡Arreglado! –
Tenga en cuenta que la publicación tiene 5 años :) –
- 1. Parse json con NSJSONSerialización clase utilizando objectForKey en iOS
- 2. Objetivo C const NSString * vs NSString * const
- 3. Cómo agregar un NSString a otro NSString
- 4. anteponer NSString?
- 5. NSString stringWithFormat
- 6. NSString análisis
- 7. cómo quitar caracteres de NSString después NSString específica
- 8. uso de NSString estático frente a constantes NSString en línea
- 9. Cómo obtener un solo carácter NSString de un NSString
- 10. Global NSString
- 11. consigo NSString De NSURL
- 12. remove "\ n" de NSString
- 13. Detectar idioma de NSString
- 14. Eliminar http: // de NSString
- 15. - [NSString stringByAppendingPathComponent:] o simplemente - [NSString stringByAppendingFormat:] para NSStrings para NSURLs?
- 16. iPhone - Comparar NSString nil con otro valor NSString devuelve NSOrderedSame
- 17. Eliminando palabras de un NSString
- 18. Conversión de CGAffineTransform a NSString
- 19. ¿Cómo obtengo clases de NSString?
- 20. ios Codificación UTF8 de nsstring
- 21. Reemplazar ocurrencias de NSString - iPhone
- 22. Convierte de char * a NSString?
- 23. conversión de NSDecimalNumber a NSString
- 24. tipo de identificación a NSString
- 25. NSData de NSKeyedArchiver a NSString
- 26. conversión de int en NSString
- 27. eliminar caracteres específicos de NSString
- 28. @ "" versus [cadena NSString]
- 29. NSString copia no copia?
- 30. Objective-C: - [NSString wordCount]
En caso de que el rendimiento sea su prioridad, JSONKit es una mejor alternativa. – Danra
Hay un buen tutorial en http://www.raywenderlich.com/5492/working-with-json-in-ios-5 sobre el uso de NSJSONSerialization. – dean