Est-ce possible si j'ai une chaîne NSString et que je veux utiliser NSJSONSerialization? Comment puis-je faire cela?
Réponses
Trop de publicités? Tout d’abord, vous devrez convertir votre NSString
en NSData
en procédant comme suit:
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
puis utilisez simplement la méthode JSONObjectWithData
pour le convertir en JSON
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
Vous devez convertir votre NSString
en NSData
, vous pouvez alors utiliser la méthode +[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
}
Vous pouvez convertir votre chaîne en NSData en disant:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
Vous pouvez ensuite l'utiliser avec NSJSONSerialization
. Notez toutefois que NSJSONSerialization
est uniquement iOS5. Il est donc préférable d’utiliser une bibliothèque telle que TouchJSON ou JSONKit, qui vous permettent néanmoins de travailler directement avec des chaînes, ce qui vous évite de passer à la conversion en NSData.
J'ai écrit un post de blog qui montre comment envelopper le natif iOS classe JSON dans un protocole général avec une mise en œuvre qui utilisent le natif iOS classe JSON.
Cette approche rend les choses beaucoup plus faciles à utiliser les fonctionnalités natives et réduit la quantité de code à écrire. En outre, elle rend beaucoup plus facile de passer le natif de mise en œuvre avec, disons, JSONKit, si le natif s'avérerait insuffisante.
http://danielsaidi.wordpress.com/2012/07/04/ios-json/
Le blog contient tout le code dont vous avez besoin. Il suffit de copier / coller :)
Espérons que cela aide!