2012-04-17 19 views
15

Ho una stringa JSON come oggetto NSString in iOS. Voglio analizzare questo ed estrarre i parametri specificati nella stringa JSON. C'è un modo efficace per analizzare questo o è l'unico modo per cercare sottostringhe ecc.?iOS JSON NSString Parse

risposta

48

Il modo per farlo con iOS 5 è quello di utilizzare la classe NSJSONSerialization. Si vuole convertire prima la stringa a un oggetto NSData, e chiamare il metodo della classe JSONObjectWithData

NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *e; 
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e]; 

Nota che JSONObjectWithData restituirà sia un NSDictionary o un NSArray, a seconda che la stringa JSON rappresenta un un dizionario o un array .

+9

Si noti che è necessario utilizzare 0 o NSJSONReadingMutableContainers per le opzioni per sopprimere l'avviso del compilatore. –

0

Un buon quadro per la conversione di stringhe JSON in oggetti Objective-C (NSArray e NSDictionary) è SBJson (Github).

Usage:

NSDictionary *dict = [myJsonString JSONValue]; 
+0

C'è un modo per farlo con iOS 5 JSON? – user1120008

+0

Sì, ma è più complesso e limita la tua applicazione a funzionare solo su iOS 5. –

+0

Sono d'accordo, SBJSON è tuo amico. Molto più conveniente rispetto all'API ufficiale e funziona anche con versioni iOS precedenti. – aroth