Domanda

Sto tentando di leggere un messaggio JSON usando JSON.Framework.Il messaggio è una raccolta nidificata dei dettagli della riunione.Il mio desiderio è quello di itarizzare tutti gli incontri e creare oggetti riunioni locali con i dettagli letti dal messaggio.Vedo di ottenere elenco dei 15 riunioni che si trovano nei risultati JSON ma non riescono a ottenere i singoli valori dai risultati.

Ecco il mio codice di esempio.Sto usando un file per il messaggio JSON in modo da non dover coinvolgere il server in questo test.Il messaggio JSON può essere scaricato qui .

-(void)TestParse:(NSString *)response
{
    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"conference_calls" ofType:@"json"];
    NSString *fileContent =[[NSString alloc]initWithContentsOfFile:filePath];

    parser = [SBJsonParser new];
    NSArray *results = [parser objectWithString:fileContent];

    NSLog(@"Number of itmems in the results: --> %i", [results count]);

    for(NSDictionary *conf in results){

        //Load local objects with the values of the Conf info.

        NSLog(@"This the description %@ ",[c valueForKey:"phone_number"]);

        NSLog(@"Number of Items in Dic: %i",[conf count]);

        NSLog(@"File contents: %@",[conf description]);
    }
.

È stato utile?

Soluzione

La struttura del tuo JSON è un array di dizionari.Ma ogni dizionario è solo una singola chiave chiamata "Conference_call", con il valore per quella chiave un altro dizionario con tutti i dettagli di quella chiamata.

Quindi qualcosa del genere dovrebbe funzionare:

for (NSDictionary* call in results) {

    // get the actual data for this call
    NSDictionary *callDetails = [call objectForKey:@"conference_call"];

    NSLog (@"Location is %@", [callDetails objectForKey:@"location"]);
}
.

Spero che ti aiuti.

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