2016-07-04 20 views
0

Ich versuche, Elemente aus einem Wörterbuch extrahiert und konvertieren sie in Doppel. Die Daten werden aus JSON gezogen und scheinen in einen Array-Typ (nicht sicher, welcher Typ) extrahiert zu werden. Gibt es eine Möglichkeit, die unten aufgeführten Zahlen einzeln aus dem Array zu erhalten? Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.Ziel C Zugriff auf Elemente

NSDictionary *parameters = @{@"username":savedUser,@"password":savedPass}; 

     NSURL *URL = [NSURL URLWithString:@"testwebsite"]; 
     AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
     manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
     [manager GET:URL.absoluteString parameters:parameters progress:nil success:^(NSURLSessionTask *task, id responseObject) 
     { 

      NSError *error = nil; 
      JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error]; 
      if (error) { 
       NSLog(@"Error serializing %@", error); 
      } 
      NSLog(@"%@",JSON); 
      NSString *price = [NSString stringWithFormat:@"%@",[JSON valueForKey:@"UnitPrice"]]; 
      price= [price stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

      NSLog(@"Price: %@",price); 

      [transactionTotals addObject:price]; 

      [self createGraph:100]; 

     } 
      failure:^(NSURLSessionTask *operation, NSError *error) 
     { 

      NSLog(@"Error1: %@", [error debugDescription]); 
      NSLog(@"Error2: %@", [error localizedDescription]); 

     }]; 
    } 
    @catch (NSException *exception) 
    { 
     NSLog(@"%@",exception); 
    } 

Log (Einzelpreis Werte I einzeln extrahiert müssen):

Wörterbuch Ausgabe:

2016-07-03 22:52:21.330 T2PApp[2272:658440] (
     { 
     OrderDetailID = 3; 
     ProductName = Oranges; 
     UnitPrice = "399.99"; 
     date = "2016-06-09T21:45:06"; 
    }, 
     { 
     OrderDetailID = 7; 
     ProductName = Oranges; 
     UnitPrice = 1000; 
     date = "2016-06-13T22:15:47.107"; 
    } 
) 

Herauseinzelpreis Ausgabe (noch nicht vollständig extrahiert):

2016-07-03 22:52:21.330 T2PApp[2272:658440] Price: (
    399.99, 
    1000 
) 

Antwort

0

Ich denke, Was Sie brauchen, ist das Ausgraben der Daten von den Objekten im Array. Es geht nicht um den JSON.
Es gibt viele Wege, es zu tun, aber nicht eine einfache Art, es auszugraben.
Erstellen Sie beispielsweise ein neues Array, und durchqueren Sie das Zielarray, und fügen Sie die gewünschte Eigenschaft in das neue Array ein.
Es ist im Grunde so.
In Ihrem Code wird der folgende Code möglicherweise funktionieren.

NSLog(@"%@",JSON); 
NSMutableArray *priceArr = [NSMutableArray array]; 
NSArray *arr = nil; 
if ([JSON isKindOfClass:[NSArray class]]) { 
    arr = (NSArray *)JSON; 
    for (NSDictionary *dic in arr) { 
     NSString *price = [NSString stringWithFormat:@"%@",[dic valueForKey:@"UnitPrice"]]; 
     price= [price stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 
     [priceArr addObject:price]; 
    } 
} 

priceArr ist, was Sie brauchen.

+0

Wie würde ich über Preis-Array iterieren? ObjectAtIndex scheint nicht zu funktionieren. – user5792975

+0

forin kann es tun – childrenOurFuture

Verwandte Themen