Question

Est-il possible si j'ai un NSString et je veux utiliser NSJSONSerialization? Comment puis-je faire?

Était-ce utile?

La solution

D'abord, vous devez convertir votre NSString à 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];

Autres conseils

Vous devez convertir votre NSString à NSData, à ce moment-là, vous pouvez 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 à NSData en disant:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

Vous pouvez alors l'utiliser avec NSJSONSerialization. Notez cependant que NSJSONSerialization est iOS5 seulement, alors vous pourriez être mieux d'utiliser une bibliothèque comme TouchJSON ou JSONKit, les deux qui vous permettent de travailler directement avec les chaînes de toute façon, vous permettant d'économiser l'étape de conversion à NSData.

J'ai écrit un billet de blog qui montre comment envelopper la classe native iOS JSON dans un protocole général, ainsi que la mise en œuvre qui utilisent la classe native iOS JSON.

Cette approche rend beaucoup plus facile d'utiliser la fonctionnalité native et réduit la quantité de code que vous devez écrire. De plus, il est beaucoup plus facile de passer à la mise en œuvre native avec, disons, JSONKit, si le natif se révélerait insuffisante.

http://danielsaidi.com/blog/2012/07 / 04 / JSON-en-ios

Le blog contient tout le code dont vous avez besoin. Il suffit de copier / coller:)

it helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top