Domanda

Sto lavorando a un'app che parla con il servizio Web REST. Il parser JSON che sto usando è SBJSON. C'è questo servizio Web sul lato server restituisce una beassa. Questo fagiolo contiene un fagiolo. Parte del JSON che ho ricevuto dal lato server è così quando ci sono più fagioli:

        BeanB =             
        (
            {
                key = 12;
                name = test2bbb;
            },
            {
                key = 11;
                name = test2ttt;
            }
        );

Quando c'è solo un fagiolo, sembra questo:

        BeanB =             
        {
            key = 10;
            name = test3;
        };

Attraversando il parser SBJSON, ho ottenuto un dizionario quando è stato restituito un solo beanb e ho ottenuto un array quando è stato restituito più di un beanb. Il codice che ho usato per ricevere i fagioli sono:

        NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];

Il problema è che non posso prevedere cosa ottengo dal lato server. C'è un modo per testare il tipo di ritorno?

È stato utile?

Soluzione

Questo è un caso in cui è appropriato controllare la classe del valore restituito.

id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
  NSDictionary *beanDic = beanB;
  ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top