2013-01-31 15 views
5

Eventuali duplicati:
How to parsing JSON object in iPhone SDK (XCode) using JSON-FrameworkCome analizzare il valore di Json in iPhone?

sto lavorando in applicazione per iPhone, utilizzando il framework JSON per analizzare il valore JSON dal servizio Web, Come ottenere il valore JSON come 1221, 1278, 3456, ........... ecc. (Questo valore non è costante, cambia dinamicamente il valore automaticamente, quindi non lo sapevo) È possibile farlo?

Grazie in anticipo

risposta JSON per il vostro riferimento:

{ 
     "1221": 
    { 
      "type": "product", 
      "product_id": 1221, 
      "intID": "1", 
      "name": "rer Margherita", 
      "des": "Tomatensauce, Käse<sup>1</sup>", 
      "img": "", 
      "isDeal": false, 
      "cat": { 
       "1": { 
        "price": 4, 
        "pos": 1, 
        "catname": "normal", 
        "extras": false 
       }, 
       "2": { 
        "price": 5.9, 
        "pos": 2, 
        "catname": "groß", 
        "extras": false 
       } 
      } 
     }, 
     "1278": { 
      "type": "product", 
      "product_id": 1222, 
      "intID": "2", 
      "name": "ere Zwirerebeln", 
      "des": "er", 
      "img": "", 
      "isDeal": false, 
      "cat": { 
       "1": { 
        "price": 2, 
        "pos": 1, 
        "catname": "rer", 
        "extras": true 
       }, 
       "2": { 
        "price": 6.2, 
        "pos": 2, 
        "catname": "mega", 
        "extras": true 
       } 
      } 
     }, 
+0

NSArray * arr = [[NSArray alloc] initWithArray: [dizionario allKeys]]; otterrai la matrice di tutte le chiavi. –

+0

Grazie per la tua risposta – SampathKumar

+0

quindi puoi confrontare le chiavi con la risposta e recuperare l'intero dizionario secondo la tua chiave. –

risposta

2

Basta convertire i dati JSON in un oggetto

NSData *jsonData = //response data 

NSDictionary *object = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; 

allora non c'è analisi coinvolti, basta trattare con il dizionario. (O array, ecc ...)

Per avere la lista si vuole si può poi fare ...

NSArray *requiredValues = [object allKeys]; 
+0

Perché dovresti prima convertire il tuo oggetto 'NSData' in un' NSString' (ASCII? Really?) E poi tornare a 'NSData' invece di usare' self' in 'JSONObjectWithData:'? Non capisco perché tu abbia bisogno di un metodo di categoria per qualcosa che sia un one-liner in ogni caso. – omz

+0

Non so, è solo qualcosa che ho usato un po 'indietro e bloccato. Buon punto thoguh. – Fogmeister

+0

Grazie per la risposta – SampathKumar