Domanda

È possibile se ho una NSString e voglio utilizzare NSJSONSerialization?Come faccio a fare questo?

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top