NSJSONSerialization da NSString
-
28-10-2019 - |
Domanda
È possibile se ho una NSString e voglio utilizzare NSJSONSerialization?Come faccio a fare questo?
Soluzione
Per prima cosa dovrai convertire il tuo NSString
a NSData
facendo quanto segue
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
quindi semplicemente usa il JSONObjectWithData
Metodo per convertirlo in JSON
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
Altri suggerimenti
Devi convertire il tuo NSString
a NSData
, a quel punto puoi usare il +[NSJSONSerialization JSONObjectWithData:options:error:]
metodo.
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
}
È possibile convertire la stringa a NSData dicendo:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
È quindi possibile utilizzare con NSJSONSerialization
.Si noti, tuttavia, che NSJSONSerialization
è iOS5 solo, quindi potrebbe essere meglio usare una libreria come TouchJSON o JSONKit, entrambi i quali consentono di lavorare direttamente con le stringhe, comunque, vi risparmio la fase di conversione per NSData.
Ho scritto un post sul blog che dimostra come avvolgere la classe iOS JSON nativa in un protocollo generale insieme a un'implementazione che utilizza la classe iOS JSON nativa.
Questo approccio rende molto più facile utilizzare la funzionalità nativa e riduce la quantità di codice che devi scrivere. Inoltre, rende molto più facile cambiare l'implementazione nativa con, per esempio, Jsonkit, se quella nativa si rivelerebbe insufficiente.
http://danielsaidi.com/blog/2012/07/04/json-in-ios
Il post sul blog contiene tutto il codice di cui hai bisogno. Basta copiare / incollare :)
Spero che sia d'aiuto!